实验四第二题
题目是用9条命令向内存0:200~0:23F依次传送数据0~63h,看了一下答案有一点不理解,assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax
mov bl,0
mov cx,40h
s: mov ,bl
inc bl
loop s
mov ax,4c00h
int 21h
上面答案中红色那行不理解,既然 mov bl,0 ,但是bh还没有被赋值,所以mov ,bl中的偏移地址不一定是0000h吧?
本帖最后由 莫名其妙 于 2012-2-23 16:24 编辑
刚发了一堆废话删掉了 看错你的意思了现在就应该对了
一般情况下在你编写的程序里在程序开始以后没有对ax bx 赋值的情况下 它们的值都是 0
也就是 ax bx 的值在没改动的情况下初值都是ax=0000 bx=0000
而且mov bl,0 也不是说给bl置0而是将要0-63h的值放进BL中 !~
E:\TEST\1>debug 2.exe
-r
AX=0000BX=0000CX=006EDX=0000SP=0000BP=0000SI=0000DI=0000
DS=0B75ES=0B75SS=0B85CS=0B89IP=0000 NV UP EI PL NZ NA PO NC
0B89:0000 B8850B MOV AX,0B85
-t
这是一个程序进入DEBUG以后 在给ax 赋值前各个寄存器的值 ax bx dx 都是0 cx则不是
本帖最后由 功夫猫 于 2012-2-23 13:40 编辑
mov bl,0
改为mov bx,0
inc bl
改为inc bx 改不改无所谓 莫名其妙 发表于 2012-2-23 15:51 static/image/common/back.gif
刚发了一堆废话删掉了 看错你的意思了现在就应该对了
一般情况下在你编写的程序里在程序开始以后没有对 ...
你的意思我懂了,谢谢
页:
[1]