- 3
- 0
- 约7.62千字
- 约 13页
- 2018-11-02 发布于河北
- 举报
北京理工大学CPU实验二
实验二 算术运算
一、实验目的
1、掌握 MASM for Windows 环境下的汇编语言编程环境使用;
2 、掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD
码的表示形式;
3、掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标志影响及
测试方法;
4 、掌握无符号数和有符号数运算区别及编程方法;
5、掌握 BCD 码调整指令的使用方法
二、实验基本原理
1、加减乘除指令
(1)加减法指令
ADD 表示加法指令,ADC 表示带进位加法指令, SUB 表示减法指令,SBB 表示
带进位减法指令。
(2 ) 乘除法指令
MUL 表示无符号数乘法指令,IMUL 表示带符号数乘法指令,DIV 表示无符号数除
法指令,IDIV 表示带符号数除法指令。
2 、符号位扩展指令
CBW 表示从字节扩展到字的指令,CWD 表示从字扩展到双字的指令。
3、BCD 码的调整指令
在进行十进制加减运算时,需要将数据用 BCD 码表示,还要考虑到是组合 BCD 码
还是非组合 BCD 码,组合 BCD 码是用一个字节表示两位十进制数,非组合 BCD
码是用一个字节表示一位十进制数,对于组合的 BCD 码加减法运算其结果存放在
AL 中。
(1)组合的 BCD 码加法调整指令 DAA ;
(2 )组合的 BCD 码减法调整指令 DAS ;
(3 )非组合的 BCD 码加法调整指令 AAA ;
(4 )非组合的 BCD 码减法调整指令 AAS ;
(5 )乘法的非组合 BCD 码调整指令 AAM ;
(6 )除法的非组合 BCD 码调整指令 AAD 。
4 、状态标志
表 1 标志名和状态符号的对照表参照表
标志名 置位 复位
溢出标志 OF(是/否) OV NV
方向标志 DF(减/增) DN UP
中断标志 IF(允许/禁止) EI DI
符号标志 SF(负/正) NG PL
零标志 ZF(是/否) ZR NZ
辅助进位标志 AF(是/否) AC NA
奇偶校验标志 PF(偶/奇) PE PO
进位标志 CF(是/否) CY NC
三、实验程序清单
1、087H 和034H 的加减乘除:
DATAS SEGMENT
BUF1 DB 087H
BUF2 DB 034H
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,0
MOV BX,0
MOV AL,BUF1
MOV BL,BUF
原创力文档

文档评论(0)