实验四 十进制数BCD码相减运算实验报告

实验四 十进制数的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