,.
微机系统实验报告
班 级: 031214 学 号: 03121370 姓 名: 孔玲玲 地 点: 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功能调用
AH 值 1 2 6 8 9 4CH 功 能 键盘输入并回显 显示单个字符(带Ctrl+Break检查) 显示单个字符(无Ctrl+Break检查) 从键盘上读一个字符 显示字符串 返回DOS系统 DL=输出字符 DL=输出字符 调 用 参 数 结 果 AL=输出字符 光标在字符后面 光标在字符后面 AL=字符的ASCII码 DS:DX=串地址,‘$’为结束字符 光标跟在串后面 AL=返回码
,.
四、实验步骤
(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:DATA MOV AX,DATA MOV DS,AX
mov ah,09h
mov DX,OFFSET BUFFER int 21h
START:
,. MOV cmp BYTE PTR [SI],'$' je lab2 MOV AL,DS:[SI]
SI,OFFSET BUFFER2
lab1:
AND AL,0F0H
MOV
CL,4
SHR AL,CL CMP AL,0AH JB
C2 ADD AL,07H C2:
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H MOV
AL,DS:[SI]
AND AL,0FH
CMP AL,0AH JB
C3 ADD AL,07H C3:
ADD AL,30H MOV DL,AL
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 BL,AL AND AL,0F0H
MOV
CL,4
SHR AL,CL CMP AL,0AH JB
C4
ADD AL,07H C4:
ADD
AL,30H
;取高4位
;是否是A以上的数
;show character ;取低4位
;show character ;取高4位
;是否是A以上的数
,.
mov ah,4ch int 21h
MOV MOV INT AND CMP JB
ADD ADD MOV MOV INT
21H AL,0FH AL,0AH C5 21H
AL,07H DL,AL AH,02H
;show character
AL,30H
;取低4位
DL,AL AH,02H
;show character
MOV AL,BL
C5:
jmp lab2
lab3:
CODE ENDS end START
六、实验结果