学习微机已经不久了,汇编却还很差劲,就借写博客的机会把自己觉得重要的知识点记录下来吧!
这是一个五位十进制数乘法计算并以十进制数的形式打印的汇编程序,注释十分详尽!
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
MES1 DB 'The result is: $'
MES2 DB 'ERROR EXIT!$'
DATA1 DB 05H,04H,03H,02H,05H;被乘数为52345,非压缩十进制BCD码存放乘数
DATA2 DB 03H ;被乘数为3
RESULT DB 06H DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
;把被乘数3存放到BL***********************************
MOV SI,OFFSET DATA2
MOV BL,[SI]
AND BL,0FH
;检查被乘数是否为BCD数,否则跳转报错*****************
CMP BL,09H
JNC ERROR
;****************************************************
MOV SI,OFFSET DATA1
MOV DI,OFFSET RESULT ;RESULT中倒着存放乘积
MOV CX,0005H ;LOOP循环五次
;********************************