西电微机原理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机系统实验报告
班级:031214
学号:********
*名:***
地点:E-II-312
时间:第二批
实验一汇编语言编程实验
一、实验目的
(1)掌握汇编语言的编程方法
(2)掌握DOS功能调用的使用方法
(3)掌握汇编语言程序的调试运行过程
二、实验设备
PC机一台。
三、实验内容
(1)将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。
(2) 在屏幕上显示自己的学号姓名信息。
(3)循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入“Q”或“q”时结束。
(4)自主设计输入显示信息,完成编程与调试,演示实验结果。
考核方式:完成实验内容(1)(2)(3)通过,
完成实验内容(4)优秀。
实验中使用的DOS功能调用:INT 21H
表3-1-1 显示实验中可使用DOS功能调用
四、实验步骤
(1)运行QTHPCI软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。
(2)使用“项目”菜单中的“编译”或“编译连接”命令对实验程序进行编译、连接。
(3)“调试”菜单中的“进行调试”命令进入Debug调试,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。按F9连续运行。
(4)更改数据区的数据,考察程序的正确性。
五、实验程序
DATA SEGMENT
BUFFER DB '03121370konglingling:',0AH,0DH,'$'
BUFFER2 DB 'aAbBcC','$'
BUFFER3 DB 0AH,0DH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
START:
MOV AX,DA TA
MOV DS,AX
mov ah,09h
mov DX,OFFSET BUFFER
int 21h
MOV SI,OFFSET BUFFER2
lab1:
cmp BYTE PTR [SI],'$'
je lab2
MOV AL,DS:[SI]
AND AL,0F0H ;取高4位
MOV CL,4
SHR AL,CL
CMP AL,0AH ;是否是A以上的数
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL ;show character
MOV AH,02H
INT 21H
MOV AL,DS:[SI]
AND AL,0FH ;取低4位
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL ;show character
MOV AH,02H
INT 21H
add SI,1
jmp lab1
lab2:
mov ah,09h
mov DX,OFFSET BUFFER3
int 21h
mov ah,01h
int 21h
cmp al,'q'
je lab3
mov B L,AL
AND AL,0F0H ;取高4位
MOV CL,4
SHR AL,CL
CMP AL,0AH ;是否是A以上的数
JB C4
ADD AL,07H
C4: ADD AL,30H
MOV DL,AL ;show character
MOV AH,02H
INT 21H
MOV AL,BL
AND AL,0FH ;取低4位
CMP AL,0AH
JB C5
ADD AL,07H
C5: ADD AL,30H
MOV DL,AL ;show character
MOV AH,02H
INT 21H
jmp lab2
lab3:
mov ah,4ch
int 21h
CODE ENDS
end START
六、实验结果
实验二数码转换实验
一、实验目的
(1)掌握不同进制数及编码相互转换的程序设计方法。
(2)掌握运算类指令编程及调试方法。
(3)掌握循环程序的设计方法。
二、实验设备
PC机一台。
三、实验内容及说明
(1)重复从键盘输入不超过5位的十进制数,按回车键结束输入;
(2)将该十进制数转换成二进制数;结果以2进制数的形式显示在屏幕上;
(3)如果输入非数字字符,则报告出错信息,重新输入;
(4)直到输入“Q”或‘q’时程序运行结束。
(5)键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。
考核方式:完成实验内容(1)(2)(3)(4)通过,
完成实验内容(5)优秀。
转换过程参考流程如图3-2-2所示。
十进制数可以表示为:D n*10n+D n-1*10n-1+…+D0*100=∑ D i*10i
其中D i代表十进制数1、2、3、…、9、0。
上式可以转换为:∑ D i*10i=(((D n*10+D n-1)*10+ D n-2)*10+…+ D1)*10+ D0
由上式可归纳出十进制数转换为二进制数的方法:从二进制数的最高位D n开始做乘10