微机原理与接口技术实验报告1- 汇编语言程序设计

更新时间:2023-10-07 11:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西安交通大学实验报告

成绩

第 页 共 页

课 程 微机原理与接口技术实验

系 别 生 物 医 学 工 程 实 验 日 期 年 月 日 专业班级 组别 交 报告日期 年 月 日 姓 名 学号 报 告 退 发 (订正、重做) 同 组 者 教师审批签字

实验名称 汇编语言程序设计

一、实验目的

1. 掌握Lab6000p实验教学系统基本操作; 2. 掌握8088/8086汇编语言的基本语法结构; 3. 熟悉8088/8086汇编语言程序设计基本方法。

二、实验设备

1. Lab6000p实验教学系统; 2. IBM-PC机

三、实验内容

1. 有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,

BBH,7FH,0FH,D8H。编程并显示结果:

1) 如果数组是无符号数,求出最大值,并显示; 2) 如果数组是有符号数,求出最大值,并显示。

2. 将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD

是:”

3. 将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的

ASCII是:”

4. 两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1

的内容移至内存块2。在移动的过程中,显示移动次数1, 2 ,3…0AH…64H

(16进制-ASCII码并显示子程序)

5. 键盘输入一个小写字母(a~z),转换成大写字母

显示:请输入一个小写字母(a~z): 转换后的大写字母是:

6. 实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H

= xxxxxxxxH

四、实验结果

1.有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:

(1)如果数组是无符号数,求出最大值,并显示; (2)如果数组是有符号数,求出最大值,并显示。 程序:

(1)无符号数

#make_COM#

; COM file is loaded at CS:0100h ORG 100h JMP START

ABC DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H MAIN PROC FAR START: MOV SI,0

MOV AL,ABC[SI] A1: INC SI CMP SI,9 JNC EXIT

MOV BL,ABC[SI] CMP AL,BL JC A2 JMP A1 A2: XCHG BL,AL JMP A1

EXIT: MOV CL,16 DIV CL

MOV DX,AX MOV CL,9 CMP DL,CL JA E1

ADD DL,30H MOV AH,2 INT 21H E1: ADD DL,37H MOV AH,2 INT 21H

MOV DL,DH CMP DL,9 JA E2

ADD DL,30H MOV AH,2

INT 21H E2: ADD DL,37H MOV AH,2 INT 21H MOV DL,'H' MOV AH,2 INT 21H RET MAIN ENDP END START 结果:

(2)有符号数 #make_COM#

; COM file is loaded at CS:0100h ORG 100h JMP START

SHUZU DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H MAIN PROC FAR START: MOV SI,0

MOV AL,SHUZU[SI]

L1: INC SI CMP SI,9 JNC NEXT

MOV BL,SHUZU[SI] CMP AL,BL

JL L2 ;带符号数比较 JMP L1 L2: XCHG BL,AL JMP L1

NEXT: MOV CL,16 DIV CL MOV DX,AX MOV CL,9 CMP DL,CL

JA L3 ; ADD DL,30H MOV AH,2 INT 21H JMP L4

L3: ADD DL,37H MOV AH,2 INT 21H

L4: MOV DL,DH ;ASCII CMP DL,9 JA L5 ADD DL,30H MOV AH,2 INT 21H JMP L5 L5: ADD DL,37H MOV AH,2 INT 21H

L6: MOV DL,'H' MOV AH,2 INT 21H HLT MAIN ENDP

END START

无符号数比较 码转换

2.将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 程序:

#make_COM#

; COM file is loaded at CS:0100h ORG 100h JMP START

;DATA SEGMENT

SHUCHU DB 'BCD IS $' ABC DB 15 DUP(?) ;DATA ENDS MAIN PROC FAR

START: MOV DX,OFFSET SHUCHU MOV AH,9 INT 21H

MOV AX,OFFSET ABC MOV DX,AX

MOV AX,500H ;分离出各位数,分别进行BCD码转换 SUB DX,DX MOV CX,1000 DIV CX

XCHG DX,AX ;商在DX中,余数在AX中 MOV BX,AX ADD DL,30H MOV AH,2

INT 21H ;千位转换并输出

本文来源:https://www.bwwdw.com/article/636d.html

Top