汇编语言程序设计(东北大学信息学院)第10章 算术运算与代码转换.ppt
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
汇编语言程序设计(东北大学信息学院)第10章 算术运算与代码转换 本章节主要介绍了汇编语言程序设计中的算术运算和代码转换,包括多字节加减运算、多字节整数乘除运算、BCD 码运算、浮点数的加减法、二进制定点数与十进制数的ASCII 码串转换等内容。 10.1 多字节加减运算 在汇编语言中,多字节加减运算是指对多字节数据的加减运算。例如,假设我们有两个多字节数据DATA1 和 DATA2,数据长度在 LEGH 单元存放。我们可以编制程序计算两个数据之和并存入 SUM 开始的单元。程序清单如下所示: DSEG SEGMENT DATA1 DB 85H, 27H, 4AH ; (4A2785H) DATA2 DB 93H, 87H, 65H ; (658793H) LEGH DW 3 SUM DB 3 DUP (0) DSEG END CSSEG SEGMENT ASSUME CS: CSEG, DS: DSEG START: MOV AX, DSEG MOV DS, AX LEA SI, DATA1 LEA DI, DATA2 LEA BX, SUM MOV CX, LEGH CLC AGAIN: MOV AL, [SI] ADC AL, [BX] MOV [DI], AL INC SI INC BX INC DI LOOP AGAIN MOVAH, 4CH INT 21H CSSEG END START 34 ADC BYTE PTR [DI], 0 10.2 多字节整数乘除运算 多字节整数乘除运算是指对多字节整数的乘除运算。例如,假设我们有两个多字节整数,需要计算它们的乘积。我们可以使用以下算法: (1)取乘数和被乘数; (2)中间结果单元清零; (3)若乘数为零则结束乘法; (4)乘数逻辑右移一位,最低位移入进位标志 CF 中,如果 CF 为零则转第(6)步; (5)中间结果加上被乘数; (6)被乘数左移一位; (7)重复第 3、4、5、6 步,直到乘完所有位。 我们可以编制一个子程序来实现这个算法,例如: MUL8 PROC XOR AH, AH XOR DX, DX MUL80: OR BL, BL JNZ MUL81 RET MUL81: SHR BL, 1 JNC MUL82 ADD DX, AX MUL82: SHL AX, 1 JMP MUL80 MUL8 ENDP 这个子程序可以实现两个单字节数据的乘法运算,我们可以根据需要将其修改为多字节整数乘法运算。 10.3 BCD 码运算 BCD 码运算是指对 Binary-Coded Decimal 码的运算。例如,我们可以使用以下算法实现BCD 码的加减运算: (1)将两个BCD 码相加减,结果存放在第三个BCD 码中; (2)对结果进行调整,使其符合BCD 码的格式。 10.5 浮点数的加减法 浮点数的加减法是指对浮点数的加减运算。例如,我们可以使用以下算法: (1)将两个浮点数相加减,结果存放在第三个浮点数中; (2)对结果进行调整,使其符合浮点数的格式。 10.7 二进制定点数与十进制数的ASCII 码串转换 二进制定点数与十进制数的ASCII 码串转换是指将二进制定点数转换为十进制数的ASCII 码串,或者将十进制数的ASCII 码串转换为二进制定点数。例如,我们可以使用以下算法: (1)将二进制定点数转换为十进制数的ASCII 码串: (a)将二进制定点数转换为十进制数; (b)将十进制数转换为ASCII 码串。 (2)将十进制数的ASCII 码串转换为二进制定点数: (a)将ASCII 码串转换为十进制数; (b)将十进制数转换为二进制定点数。 这章节中,我们学习了汇编语言程序设计中的算术运算和代码转换,包括多字节加减运算、多字节整数乘除运算、BCD 码运算、浮点数的加减法、二进制定点数与十进制数的ASCII 码串转换等内容。这些知识点对于编程和计算机科学的学习和研究非常重要。
剩余53页未读,继续阅读
- 粉丝: 87
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助