您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页实验四 乘除指令及BCD运算程序

实验四 乘除指令及BCD运算程序

来源:华佗小知识
实验四 乘除指令及BCD运算程序

一、任务与目的

1. 实验任务:

(1) 熟悉和掌握乘除指令及BCD运算指令的用法; (2) 掌握BCD码运算程序的编写方法。 2. 实验目的:

(1). 掌握有符号数与无符号数乘除指令的运算方法; (2) 熟悉BCD码运算的运算方法。

二、原理(条件)

1.相关知识:

(1) 无符号数与有符号数乘除指令的格式; (2) BCD码运算的调整方法。 2.实验条件:

MASM汇编程序及TD调试软件。

三、内容步骤

1.启动TD(Turbo Debugger)输入程序段,观察乘法指令的执行情况、标志位

变化并分析结果: (1) MOV AL,0FBH MOV BL, 23H MUL BL

(2) MOV AL,0FBH MOV BL,23H IMUL BL

2.启动TD(Turbo Debugger)输入程序段,观察除法指令的执行情况、标志位 只能16位除以8位或32除以16位

变化并分析结果: (1) MOV AX,0FE7BH MOV BL, 23H DIV BL 改进后:

MOV AX,0FE7BH MOV DX,0000H MOV BX,0023H DIV BX

(2) MOV AX,0A9H MOV BX,23H

CBW

IDIV BX (3) MOV AX,0D7A9H MOV BX,1123H CWD IDIV BX

3.编写2个6位十进制数(6字节非压缩BCD码)加法程序,并最终把结果

转换为ASCII码,存放到数据段RESULT地址所指位置区域。

XX9732+651048=? XX为组号。参考程序如下,请在参考程序之上改写。

DATA SEGMENT

FBCD1 DB 02 03 07 09 05 00 FBCD2 DB 08H, 04H, 00H, 01H, 05H, 06H RESULT DB 6 DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX LEA SI,FBCD1 LEA DI,FBCD2 LEA BX,RESULT MOV CX,6 CLC

NEXT:MOV AL,[SI]

ADC AL,[DI] AAA ;非压缩BCD码加法调整指令 MOV [BX],AL INC SI INC DI INC BX DEC CX JNZ NEXT

① LEA SI,RESULT MOV CX,6

TBA:MOV AL,[SI] ;把结果转换为ASCII码 ADD AL ,30H MOV [SI],AL INC SI DEC CX JNZ TBA

② MOV AH,4CH

INT 21H CODE ENDS END START

(1) 在①处设置断点,观察RESULT所在存储空间内容;

(2) 在②处设置断点,观察RESULT所在存储空间内容;

(3) 其他条件不变,改成非压缩BCD码减法,如何更改程序;回家做?加法改减法 AAA非加改成AAS非减

(4) 其他条件不变,改成压缩BCD码加/减法,如何更改程序。变为三个字节的 DAS压缩减 DAA压缩加 压缩加法

压缩减法

四、数据处理(现象分析) 五、结论 六、参考资料

《微型计算机原理与接口技术》实验指导书

七、评语

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务