西北工业大学明德学院
实验报告
实验项目 微机原理与接口应用实验
班 级 121204 姓 名 田家豪 王辰硕 学 号 121566 121567 指导老师 伍明高
实验题目
(1)显示班级符号输出; (2)显示学号符号输出; (3)显示姓名符号输出; (4)显示单个字符输出;
实验目的
1、掌握在PC机上以十六位进制形式显示数据的方法 2、熟悉汇编的调试环境和使用
实验内容
STACK1 SEGMENT STACK DW 256 DUP(?) STACK2 ENDS
DATA SEGMENT USE13 MES1 DB ‘121204’,0AH,0DH,‘$’ MES2 DB ‘121566’,0AH,0DH,‘$’ MES3 DB ‘TIANJIAHAO’,0AH,0DH,‘$’ MES4 DB ‘121204’,0AH,0DH,‘$’ MES5 DB ‘121567’,0AH,0DH,‘$’
MES6 DB ‘WANGCHENSHUO’,0AH,0DH,‘$’
SD DB ‘A’ DATA ENDS MOV AH,09H INT 21H
MOV DX,OFFSET MES3 MOV AH,09H INT 21H
MOV DX,OFFSET SD MOV AL,DS:[SI] AND AL,0F0H SHR AL,4 CMP AL,0AH JB C2 ADD AL,07H
CODE SEGMENT USE13
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX
MOV DX,OFFSET MES1 MOV AH,09H INT 21H
MOV DX,OFFSET MES2 C2: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AL,DS:[DI] AND AL,0FH CMP AL,0AH JB C3 ADD AL,07H C3: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AX,4C00H INT 21H CODE ENDS END START
实验步骤
(1)运行编译器,编译程序。 (2)单击编译,保存。
(3)单击调试程序,发现无误。 (4)运行程序。
实验总结
1.通过实验,熟悉了汇编语言编译环境,了解了程序的编译,运行和调试的方法
2.实验过程中,在调试的时候,各调试指令的用法十分复杂,需要不断练习,熟悉指令的运行目的。
3.不同的程序代码,在不同的环境运行方式也不同,这是我们必须要掌握的技能。
实验题目
显示程序实验 实验目的
(1) 掌握在PC机上以十六进制形式显示数据的方法。 (2) 掌握部分DOS功能调用使用方法。 (3) 熟悉Tdpit集成环境和调试器的使用。
实验内容及说明
一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H)。 (1) 显示单个字符输出 入口:AH=02H 调用参数:DL=输出字符 (2) 显示字符串 入口:AH=09H
调用参数:DS:DX=串地址,’$’为结束字符 (3) 键盘输入并回显 入口:AH=01H 返回参数:AL=输出字符 (4) 返回DOS系统 入口:AH=4CH 调用参数:AL=返回码
实验步骤
(1) 运行Tdpit软件,选择文件菜单,点击新建,进入一个源文件编辑界面。根据实验内容的描述编写实验程序。
(2) 使用编译菜单中的编译和链接对实验程序进行汇编、连接。 (3) 使用编译菜单中的运行,运行程序,观察运行结果。
(4) 使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。
(5) 更改数据区中的数据,检查程序的正确性。
程序如下:
DATA SEGMENT MES SD CODE
SEGMENT
DB 'Show a as hex:',0AH,0DH,'$' DB 'a'
DATA ENDS
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX MOV DX,OFFSET MES MOV AH,09H
INT 21H
MOV DI,OFFSET SD MOV AL,DS:[DI] AND AL,0F0H
SHR AL,4 CMP AL,0AH
JB
C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL
MOV AH,02H INT 21H MOV AL,DS:[DI] AND AL,0FH
CMP AL,0AH JB
C3 ADD AL,07H C3: ADD AL,30H
MOV DL,AL
MOV AH,02H INT 21H MOV AX,4C00H
INT 21H
CODE
ENDS
END START
;显示提示信息
;取高4位
;是否是A以上的数;显示字符
;取低4位
;显示字符
;返回DOS