微机原理与接口技术实验讲义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一熟悉汇编语言环境及建立汇编的过程

一、实验目的

1.熟悉汇编语言环境。

2.掌握汇编语言的上机过程。

3.了解汇编语言程序的编程格式。

二、实验要求

通过一个小程序的编写达到以上的实验目的。

三、实验原理

1.汇编语言程序的上机过程

用汇编语言编写的程序称为源程序,源程序也不能由机器直接执行,而必须翻译成机器代码组成的目标程序,这个翻译过程称为汇编。在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的,用来把汇编语言编写的程序自动翻译成目标的软件叫汇编程序,汇编过程如下:

四、实验步骤

1、打开编辑环境

2、输入程序

CODE SEGMENT

ASSUME CS:CODE

START: MOV AL,01H

MOV BL,40H

ADD AL,BL

MOV DL,AL

MOV AH,02H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

3、保存源程序,以.ASM为扩展名。C:\MASM\1.ASM

4、建立汇编过程

(1)用宏汇编程序汇编源程序C:\MASM>MASM 1.ASM

汇编程序有3个输出文件【.obj】文件,【.LST】文件,【.CRF】文件,.OBJ文件是我们所需

要的文件。汇编程序还有另外一个重要功能:可以给出源程序中的错误信息。

(2)用连接程序将OBJ文件转换为可执行的EXE文件C:\MASM>LINK 1.OBJ

5、执行程序:C:\MASM>1.EXE

实验二两个多位十进制数相加的实验

一、实验目的:

1.学习数据传送和算术运算指令的用法。

2.熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程。

二、实验内容:

将两个多位十进制数相加。要求加数和被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。

三、程序框图

四、实验原理

1.ADC 带进位相加指令的功能和指令格式

2.AAA 、DAA、 AAS、 DAS指令的功能和指令格式

3.伪指令SEGMENT 、ENDS、 ASSUME、MACRO、ENDM的使用

4.子程序的定义(PROC NEAR/FAR ENDP),以及子程序调用和返回指令:CALL、RET的使用

5.循环指令LOOP的格式以及退出循环的条件

6.中断指令的使用

五、实验参考程序

CRLF MACRO ;建立回车换行宏

MOV DL,0DH

MOV AH,02H

INT 21H

MOV DL,0AH

MOV AH,02H

INT 21H

ENDM

DATA SEGMENT ;数据段

DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为加数)DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为被加数)DATA ENDS

CODE SEGMENT ;代码段

ASSUME CS:CODE,DS:DATA,ES:DATA

START: MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET DATA2

MOV BX,05

CALL DISPL ;显示被加数

CRLF

MOV SI,OFFSET DATA1

MOV BX,05

CALL DISPL ;显示加数

CRLF

MOV DI,OFFSET DATA2

CALL ADDA ;加法运算

MOV SI,OFFSET DATA1

MOV BX,05

CALL DISPL ;显示结果

CRLF

MOV AX,4C00H

INT 21H

DISPL PROC NEAR ;显示子程序段

DS1: MOV AH,02H

MOV DL,[SI+BX-1] ;显示字符串中的一个字符

INT 21H

DEC BX ;修改偏移量

JNZ DS1

RET

DISPL ENDP

ADDA PROC NEAR

MOV DX,SI

MOV BP,DI

MOV BX,05

AD1: SUB BYTE PTR[SI+BX-1],30H ;将ASCII码表示的数字串SUB BYTE PTR[DI+BX-1],30H ;转化位十六进制的字符串 DEC BX

JNZ AD1

MOV SI,DX

MOV DI,BP

MOV CX,05 ;包括进位位共5位

CLC ;清进位位

AD2: MOV AL,[SI]

MOV BL,[DI]

ADC AL,BL ;带进位相加

AAA ;非组合BCD码的加法调整 MOV [SI],AL ;结果送加数区

INC SI

INC DI ;指向下一位

LOOP AD2 ;循环

MOV SI,DX

MOV DI,BP

MOV BX,05

AD3: ADD BYTE PTR[SI+BX-1],30H ;十六进制的数字串转化

ADD BYTE PTR[DI+BX-1],30H ;为ASCII码表示的数字串 DEC BX

JNZ AD3

RET

ADDA ENDP

CODE ENDS

END START

六、实验步骤

1.按实验要求编写程序

2.汇编连接程序生成可执行文件

3. 执行程序观察结果

七、拓展练习

编写程序完成两个多位十进制数相减。要求显示结果格式为:被减数

减数

相减结果

相关文档
最新文档