汇编语言 王爽 第四版 实验4
Posted 霜序0.2℃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言 王爽 第四版 实验4相关的知识,希望对你有一定的参考价值。
实验4 [bx]和loop的使用
1
编程,向内存0:200~0:23f
依次传送数据0~63(3fh)
assume cs:code
code segment
mov ax,0
mov ds,ax;设置ds=0
mov bx,200h;设置从200h开始
mov cx,64;循环64次
mov al,0;传送的数据
s: mov [bx],al
inc bx
inc al
loop s
mov ax,4c00h
int 21h
code ends
end
这个还是挺好写的…
2
编程,向内存0:200-0:23F
依次传送数据0~63(3FH),程序中只能使用9条指令,其中包括mov ax,4c00h
和int 21h
0000:0200-0000:023F
等同于0020:00-0002:3F
这里可以改一下,把bx和al合并一下
assume cs:code
code segment
mov ax,20h
mov ds,ax;设置ds=0
mov cx,64;循环64次
mov al,0;传送的数据
s: mov [al],al
inc al
loop s
mov ax,4c00h
int 21h
code ends
end
3
补全下面的程序,其功能是将mov ax,4c00
之前的指令复制到内存0:200处,补全程序,上机调试,跟踪运行结果
提示:
- 复制了什么?从哪里到哪里?
- 复制的是什么?有多少字节,你如何知道要复制的字节数量?
assume cs:code
code segment
mov ax,___
mov ds,ax;ds的地址为ax
mov ax,0020h
mov es,ax;es是20h
mov bx,0
mov cx,___
s: mov al,[bx];将ds;bx的值赋值给al
mov es:[bx],al;将al的值赋值给es[bx]
inc bx;bx++
loop s
mov ax,4c00h
int 21h
code ends
end
不好意思看了一下答案,第一个空那里应该填cs
,因为需要将mov ax,4c00
之前的指令复制到内存0:200处,那么程序开始就是cs:ip
,所以段地址是cs
第二个空填17
,可以用debug的u命令看出来,在mov ax,4c00h
前一共有17个字节
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-POkWhiY5-1635432450733)(C:\\Users\\windows\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211028224551026.png)]
从04ae:0000
到04ae:0010
,一共17字节
以上是关于汇编语言 王爽 第四版 实验4的主要内容,如果未能解决你的问题,请参考以下文章