一、 实验目的
a)熟悉、掌握十进制调整指令(BCD 码)
b)实现 BCD 码的加减及其混合运算
二、实验重难点
a)重点:进行 BCD 码加减法运算时,需要利用十进制调整指令, 所以要熟悉其指令格式。
1.DAA 指令
指令格式:
DAA ;DAA为无目操作,用以完成对BCD码加运算校正 用法:(al)<—把 al 中的和调整到 BCD 码格式
2.DAS 指令
指令格式:
DAS ;DAS为无目操作,用以完成对BCD码相减校正
用法类似 DAA b)难点:调整指令随时无目操作,但隐含操作数必须存在 al 中, 所以做加减运算时,被加、减数必须先存入 al 中。
如:x+y
Mov al,x
Add al,y
DAA
三.程序代码
实现 1834+2798 的 bcd 码运算 Data segment
Bcd1 db 00110100b,00011000b Bcd2 db 10011000b,00100111b Bcd3 db 2 dup(?)
Data ends
Code segment
Assume cs:code,ds:data Start:mov ax,data
Mov ds,ax
Mov al,bcd1 Add al, bcd2
Daa
Mov bcd3,al Mov al,bcd1+1 Adc al,bcd2+1 Daa
Mov bcd3+1,al Mov ah,4ch
Int 21h
Code ends
End start
四、实验结果