首页
社区
课程
招聘
[旧帖] [求助]王爽的汇编问题5.2程序 0.00雪花
发表于: 2008-7-11 18:18 3427

[旧帖] [求助]王爽的汇编问题5.2程序 0.00雪花

2008-7-11 18:18
3427
程序是这样的:
assume cs:code
code segment

mov ax,0
mov cx,236
s:add ax,123
loop s
mov ax,4c00h
int 21h

code ends
end
目的是计算123×236的值,但是程序得出的结果好像不对呀,请大虾帮我看看是怎么回事,谢谢了

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你这程序对啊,最后AX=7164h  正好和123*236的值相等,你调试出错了把,程序对的
2008-7-11 20:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哎呀,我大意了
程序结束时AX的值会变成4C00H,这是因为程序是以
MOV AX,4C00H
INT 21H
结束的,所以若需要用AX表示程序的结果,应该在上面的命令被执行前查看AX的值
谢谢楼上的大哥啊。
2008-7-11 21:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我在书上看到过  程序结束语句
MOV AX,4CH
INT 21H
这个跟
MOV AX,4C00H
INT 21H
有区别?
2008-7-12 12:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=紫色雪;479890]我在书上看到过  程序结束语句
MOV AX,4CH
INT 21H
这个跟
MOV AX,4C00H
INT 21H
有区别?[/QUOTE]

看到红色那句了吧
你说书上看到应该是AH吧
调用中断...
再回去好好看看
2008-7-12 12:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
如果AX里本来有值,以
MOV AH,4CH
INT 21H
结束不会出错吗?
2008-7-12 16:29
0
雪    币: 114
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
是MOV AH,4CH不是MOV AX,4CH(十六位寄存器与八位数据......)
是给21H中断传递功能号4CH,其功能就是返回到DOS

王爽汇编有专门的支持网站,汇编的问题在那可以很快解惑的

网址:http://www.asmedu.net
2008-7-13 15:37
0
游客
登录 | 注册 方可回帖
返回
//