静雨纷纷 发表于 2012-5-23 12:07:54

关于实验四的一点小问题

assume cs:code
code segment
mov ax,code
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,18h??????
s: mov al,
mov,es:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
我也按照鱼哥给出的步骤 在debug下调试了··半个多点···cx死活等于0021···

-t
AX=140A BX=0000 CX=0021 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=13FA ES=13FA SS=140A CS=140A IP=0003 NV UP EI PL NZ NA PO NC
140A:0003 8ED8 MOV DS,AX
-u 140a:0000
140A:0000 B80A14 MOV AX,140A
140A:0003 8ED8 MOV DS,AX
140A:0005 B82000 MOV AX,0020
140A:0008 8EC0 MOV ES,AX
140A:000A BB0000 MOV BX,0000
140A:000D B91000 MOV CX,0010
140A:0010 8A07 MOV AL,
140A:0012 26 ES:
140A:0013 43 INC BX
140A:0014 E2FA LOOP 0010
140A:0016 B8004C MOV AX,4C00
140A:0019 CD21 INT 21
140A:001B 0000 ADD ,AL
140A:001D 0000 ADD ,AL
140A:001F 0000 ADD ,AL
-q
求哪位大哥指导一下啊····小弟感激不尽啊····

Yara 发表于 2012-5-23 12:07:55

你代码写错了吧,首先你给的代码有一处错误,mov,es:,al,这里多了个逗号,如果把它修改后,我编译连接,在调试CX=18的,而我看你的调试的结果中AX=140A BX=0000 CX=0021 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=13FA ES=13FA SS=140A CS=140A IP=0003 NV UP EI PL NZ NA PO NC
140A:0003 8ED8 MOV DS,AX
-u 140a:0000
140A:0000 B80A14 MOV AX,140A
140A:0003 8ED8 MOV DS,AX
140A:0005 B82000 MOV AX,0020
140A:0008 8EC0 MOV ES,AX
140A:000A BB0000 MOV BX,0000
140A:000D B91000 MOV CX,0010
140A:0010 8A07 MOV AL,
140A:0012 26 ES:
140A:0013 43 INC BX
140A:0014 E2FA LOOP 0010
140A:0016 B8004C MOV AX,4C00
140A:0019 CD21 INT 21
140A:001B 0000 ADD ,AL
140A:001D 0000 ADD ,AL
140A:001F 0000 ADD ,AL
-q

红色字体的那句就已经开出来你调试的不是你写的那段代码了,你再重新编译一下代码看看吧,我帮你调试过是没错的

clm~~ 发表于 2012-5-23 12:32:19

用17h试下,你前面用的是code应该是17h吧

箪v箪 发表于 2012-5-23 12:35:35

不知道你想表达什么?不过18h是没错的,mov ax,4c00h前的代码长度是24个字节=18h,至于cx是loop的循环次数,把24个字节复制过去需要的循环次数就是mov cx,18h(24)

clm~~ 发表于 2012-5-23 12:35:46

:L记错了,不好意思······

Yara 发表于 2012-5-23 14:43:24

还有,你说你看到CX的值为21,是因为你还没单步调试到mov cx ,18h这一句,当执行了这一句,CX就会赋值为18h了

静雨纷纷 发表于 2012-5-23 17:14:57

Yara 发表于 2012-5-23 14:41 static/image/common/back.gif
你代码写错了吧,首先你给的代码有一处错误,mov,es:,al,这里多了个逗号,如果把它修改后,我编译连接,在 ...

哦了···太粗心了····谢谢了啊··

静雨纷纷 发表于 2012-5-23 17:15:54

Yara 发表于 2012-5-23 14:43 static/image/common/back.gif
还有,你说你看到CX的值为21,是因为你还没单步调试到mov cx ,18h这一句,当执行了这一句,CX就会赋值为18h ...

谢谢了啊···

静雨纷纷 发表于 2012-5-23 17:16:36

clm~~ 发表于 2012-5-23 12:35 static/image/common/back.gif
记错了,不好意思······

呵呵··谢谢了啊···

静雨纷纷 发表于 2012-5-23 17:17:13

箪v箪 发表于 2012-5-23 12:35 static/image/common/back.gif
不知道你想表达什么?不过18h是没错的,mov ax,4c00h前的代码长度是24个字节=18h,至于cx是loop的循环次数 ...

哦了·····谢谢了啊····
页: [1]
查看完整版本: 关于实验四的一点小问题