汇编语言实验(5)

2019-08-03 14:54

ENDP

CODE ENDS

END START

4.BCD码转换为二进制码

实验源文件名DVA3_4.ASM(在文件夹“ASM_汇编例程”中) 实验程序清单如下:

STACK1 SEGMENT STACK

DW 256 DUP(?) STACK1 ENDS

DDATA SEGMENT

MES DB 'The BCD code of binary are:$' BUF DB 01H,07H,03H,04H,05H,01H,06H,08H DB 10H DUP(0) DDATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DDATA

START: MOV AX,DDATA MOV DS,AX MOV CX,0004H

MOV DI,OFFSET BUF A1: MOV AL,[DI] ADD AL,AL MOV BL,AL ADD AL,AL ADD AL,AL ADD AL,BL INC DI MOV AH,00H

ADD AL,[DI] MOV [DI+07H],AX INC DI LOOP A1

MOV DX,OFFSET MES MOV AH,09H

- 21 -

INT 21H

MOV CX,04H

MOV DI,OFFSET BUF ADD DI,08H A2: MOV AX,[DI] CALL SHWORD MOV DL,20H MOV AH,02H

INT 21H

INC DI INC DI LOOP A2

START0: MOV AH,06H MOV DL,0FFH INT 21H

JE START0 MOV AX,4C00H INT 21H

SHWORD PROC NEAR MOV BL,AH CALL SHOW MOV BL,AL CALL SHOW RET ENDP

SHOW PROC NEAR PUSH AX PUSH DX MOV AL,BL

AND AL,0F0H SHR AL,4 CMP AL,0AH JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL

MOV AH,02H

;判断是否有键按下START0 DOS 4位 A以上的数

- 22 -

;若没有转;有键返回 ;取高

;是否是 ;显示字符

INT 21H MOV AL,BL AND AL,0FH CMP AL,0AH JB C3

;取低4位

ADD AL,07H C3: ADD AL,30H

MOV DL,AL ;显示字符

MOV AH,02H INT 21H POP DX POP AX RET

ENDP CODE ENDS

END START

- 23 -

实验四 运算类程序实验

一、实验目的

(1) 掌握运算类指令编程及调试方法。

(2) 掌握运算类指令对各状态标志位的影响及测试方法。

二、实验内容及说明

80x86 指令系统提供了实现加、减、乘、除运算的基本指令,可对表4-1 所示的数据类型进行算术运算。

表2-4-1 数据类型算术运算表 数制 运算符 操作数

二进制 带符号 无符号 +、-、÷、× 字节、字、多精度 BCD 码 组合 +、- 非组合 +、-、÷、× 字节(二位数字) 字节(一位数字) 1.二进制双精度加法运算

本实验要求计算X+Y=Z ,将结果Z 输出到屏幕,其中X=001565A0H ,Y=0021B79EH。 实验利用累加器AX ,先求低十六位和,并存入低址存储单元,后求高16 位和,再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需用ADC 指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF 中的1。在80386 以上微机中可以直接使用32位寄存器和32 位加法指令完成本实验的功能。

2 .十进制数的BCD 码减法运算

本实验要求计算X-Y=Z ,其中,X、Y、Z 为BCD 码, X=0400H ,Y=0102H。

3 .乘法运算

本实验要求实现十进制数的乘法,被乘数和乘数均以BCD 码形式存放于内存中,被乘数为54320H,乘数为3H,运算结束后,将乘积在屏幕上显示。

4 .用减奇数开平方运算

80x86 指令系统中有乘除法指令但没有开平方指令,因此,开平方运算是通过程序来实现的。用减奇数法可求得近似平方根,获得平方根的整数部分。我们知道,N个自然数中的奇

2

数之和等于N ,即:

1+3+5=9=3

2

1+3+5+7=16=4

2

1+3+5+7+9+11+13+15=64=8

若要做S 的开方运算,那么就可以从S 中逐次减去自然数中的奇数1,3,5,7…,一直

- 24 -

2

进行到相减数为0 或不够减下一个自然数的奇数为止,然后统计减去自然数的奇数个数,它就是S的近似平方根。

本实验要求利用减奇法计算0040H 的开平方值,并将运算结果显示在屏幕上。

三、实验步骤

(1) 运行DVCC32JHP 软件,选择编辑Edit 菜单编写实验程序。

(2) 使用“ASM编译”菜单中“编译+连接+运行”选项,对实验程序进行汇编、连接。汇编、连接无误的话,就直接运行程序。观察运行结果。

(3) 或使用动态调试,进入调试环境,观察调试过程中,指令执行情况,包括各寄存器及数据区内容的变化等。

(4) 更改数据区中的数据,考察程序的正确性。

1.二进制双精度加法运算

实验源文件名DVA4_1.ASM(在文件夹“ASM_汇编例程”中) 实验程序清单如下:

STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS

DATA SEGMENT

MES DB 'The result is:$' XL DW 65A0H XH DW 0015H YL DW 0B79EH YH DW 0021H DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET MES MOV AH,09H INT 21H MOV AX,XL ADD AX,YL MOV BX,AX

- 25 -

四、参考程序


汇编语言实验(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:某发电厂二氧化碳捕集及利用建设项目可行性研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: