实验四 十进制数的BCD码相减运算
一、实验目的
熟悉微机对十进制数减法的运算方法。
二、实验内容
计算X-Y=Z,其中X、Y、Z为BCD码,设X,Y为40,12,则Z为28。
三、实验程序框图
四、实验步骤
脱机模式:
(1)在P.态下,按SCAL键,输入2D80,按EXEC键。
(2)复位RST键,查看减法运算结果在4100H~4101H单元中,其内容应为08、02。
联机模式:
(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8kAsm文件夹,点击S4.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
(2)按“系统复位”键,查看减法运算结果在4100H~4101H单元中,其内容应为08、02。
五、实验程序清单
X:\DICE-8086K3微机原理与接口实验箱CDROM\CODE\86kasm\S4.ASM
CODE SEGMENT ;S4.ASM,BCD-BCD=?
ASSUME CS:CODE
ORG 2D80H ;this is a program of bcd sbb,40-12=?
START: MOV AH,00H ;result in [4100]=28
SAHF
MOV CX,0002
MOV SI,4000H ;被减数首址
MOV DI,4100H ;存结果首址
MOV [SI],0400H ;送BCD码40
MOV [SI+2],0102H ;送BCD码12
CON1: MOV AL,[SI] ;取被减数
SBB AL,[SI+2] ;取减数
DAS ;十进制减法调整
PUSHF ;标志寄存器内容压栈
AND AL,0FH ;屏蔽高四位
POPF ;标志寄存器内容出栈
MOV [DI],AL ;存结果
INC DI ;目标址加一
INC SI ;源址加一
LOOP CON1 ;CX不为零继续
JMP $
CODE ENDS
END START