|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第(2)题要求用9条指令完成“向内存 0:200-0:23f 依次传送数据 0-63(3EFH)”,答案给出如下:
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bl,0
mov cx,40h
s: mov [bx],bl
inc bl
loop s
mov ax,4c00h
int 21h
code ends
end
为什么第三行指令中是mov bl,0,而不是mov bx,0?如果是前者的话,岂不是bx的高八位没有被定义为0?那么进入循环后mov [bx],bl中的bx岂不是有可能不为0,从而导致传送的数据不是从0:200(0200:0)开始保存?
比如:假设初始状态给bx的值为1111,经过mov bl,0指令后,bx变为1100,再执行s: mov [bx],bl指令,此时的意思应该为把bl中的值存到0200:1100单元的内存中去,而不是按题意说的存到0200:0000单元的内存中去!因此鄙人觉得第三条指令应为:mov bx,0。求大虾指点!!! |
|