- 在线时间
- 61 小时
- 最后登录
- 2012-7-14
- 阅读权限
- 130
- 积分
- 5080
- UID
- 34847
- 注册时间
- 2004-2-29
- 帖子
- 3905
- 精华
- 0
|
题前讲解
多题前讲解字节非压缩型BCD码的乘法运算与加减法不同,要求参加运算的乘数,被乘数必须用非压缩型BCD码,即高4位为0,低4位表示一位十进制数。也就是说当乘数,被乘数有ASCII码表示的话,则在进行乘法运算之前,必须将ASCII码高4位清零,然后采用指令系统提供的十进制乘法调整指令AAM和MUL指令配合,就可完成十进制的乘法运算!
本题的分析
设被乘数从低位到高位以ASCII的码形式存放在ADR1为首址的数据区中。同样,乘数也以ASCII码形式存放在ADR2单元中,所得运算后的乘积存放在RESULT为首址的单元中。
DATA SEGMENT
ADR1 DB ‘49375' ;定义被乘数57394
ADR2 DB ‘8’ ;定义乘数8
RESULT DB 6DUP(?);定义存放结果单元
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MMULT: MOV AX,DATA
MOV DS,AX
MOV ES,AX
CLD |
|