多字节累加求和

[复制链接]
查看11 | 回复1 | 2009-4-2 11:31:41 | 显示全部楼层 |阅读模式
MOV DI,1000
MOV CX,8
MOV SI,2000
CLC
LOP:MOV AL,[SI]

ADC [DI],AL

INC SI

LOOP LOP

INT 20
1)用命令键入此程序
2)用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节被加数,均为低字节在前面
3)用G命令运行此程序,并用D命令检查其结果(存放在哪里),是否正确?
4)将INT 20改为INT 3,有何区别?若这条指令不加,行不行?
用16位减法指令编一个32位(4字节数)减法程序,两个源数及结果存放地址同上题。

回复

使用道具 举报

千问 | 2009-4-2 11:31:41 | 显示全部楼层
1、看程序,这是字节相加,何有低字节在前之说? 2、把两数相加之和存到[DI]中,其首地址为:1000H,当然要用:D1000来检查结果了。 3、int 20h,程序中止。本中断只适用于ms-dos,不要通过这个中断中止程序,应当利用dos功能4ch来适当地中止程序。这是书上说的,原因未明。 int 3,断点。本中断用于调试目的。在代码中指定一条int 3h指令作为断点,中段处理程序将相应列出cpu的状态、各种地址位置,可能还会列出一些数据。 在debug中,这两条中断指令都可以不用。 4、用16位加减法指令作32位运算,我现在还不会。致歉。5、循环体中缺一条指令:inc di...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836