鱼C论坛

 找回密码
 立即注册
查看: 2805|回复: 9

关于实验四的一点小问题

[复制链接]
发表于 2012-5-23 12:07:54 | 显示全部楼层 |阅读模式
1鱼币
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,[bx]
mov,es:[bx],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,[BX]
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 [BX+SI],AL
140A:001D 0000 ADD [BX+SI],AL
140A:001F 0000 ADD [BX+SI],AL
-q
求哪位大哥指导一下啊····小弟感激不尽啊····

最佳答案

查看完整内容

你代码写错了吧,首先你给的代码有一处错误,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 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-23 12:07:55 | 显示全部楼层
你代码写错了吧,首先你给的代码有一处错误,mov,es:[bx],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,[BX]
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 [BX+SI],AL
140A:001D 0000 ADD [BX+SI],AL
140A:001F 0000 ADD [BX+SI],AL
-q

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 12:32:19 | 显示全部楼层
用17h试下,你前面用的是code应该是17h吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 12:35:35 | 显示全部楼层
不知道你想表达什么?不过18h是没错的,mov ax,4c00h前的代码长度是24个字节=18h,至于cx是loop的循环次数,把24个字节复制过去需要的循环次数就是mov cx,18h(24)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 12:35:46 | 显示全部楼层
:L记错了,不好意思······
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 14:43:24 | 显示全部楼层
还有,你说你看到CX的值为21,是因为你还没单步调试到mov cx ,18h这一句,当执行了这一句,CX就会赋值为18h了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-23 17:14:57 | 显示全部楼层

哦了···太粗心了····谢谢了啊··
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-23 17:15:54 | 显示全部楼层
Yara 发表于 2012-5-23 14:43
还有,你说你看到CX的值为21,是因为你还没单步调试到mov cx ,18h这一句,当执行了这一句,CX就会赋值为18h ...

谢谢了啊···
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-23 17:16:36 | 显示全部楼层
clm~~ 发表于 2012-5-23 12:35
记错了,不好意思······

呵呵··谢谢了啊···
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-23 17:17:13 | 显示全部楼层
箪v箪 发表于 2012-5-23 12:35
不知道你想表达什么?不过18h是没错的,mov ax,4c00h前的代码长度是24个字节=18h,至于cx是loop的循环次数 ...

哦了·····谢谢了啊····
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-20 04:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表