今天要交的微机实验报告分享。
显示程序实验
一,实验目的
1. 掌握在PC机上以十六进制形式显示数据的方法。
2. 掌握部分DOS功能调用使用方法。
二,实验设备
PC微机一台
三,实验内容
一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并利用DOS功能调用完成一些提示信息的显示。
四,实验清单
STACK1 SEGMENT STACK ;堆栈段开始
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT ;数据段开始
MES DB 'Press any key to exit!',0AH,0DH,0AH,0DH,'$'
MES1 DB 'Show a as hex:',0AH,0DH,'$'
SD DB 'a'
DATA ENDS
CODE SEGMENT ;代码段开始
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA ;设置DS 寄存器
MOV DS,AX
MOV DX,OFFSET MES ;取字符串首地址,显示退出提示
MOV AH,09H ;在DOS 界面显示字符串
INT 21H
MOV DX,OFFSET MES1 ;取字符串首地址,显示字符串
24
MOV AH,09H
INT 21H
MOV SI,OFFSET SD
MOV AL,DS:[SI] ;把’a’送到AL中
AND AL,0F0H ;取字节的高4位
MOV CL,4
SHR AL,CL
CMP AL,0AH ;判断是否是A以上的数
JB C2
ADD AL,07H ;大于等于A,数值加7H
C2: ADD AL,30H ;数值加30H,转换成ASCII码
MOV DL,AL
MOV AH,02H ;将转换的相应ASCII码在DOS界面下显示
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 ;显示字符
MOV AH,02H
INT 21H
KEY: MOV AH,1 ;判断是否有按键按下?
INT 16H ;(为观察运行结果,使程序有控制的退出)
JZ KEY
MOV AX,4C00H ;结束程序,退出
INT 21H
CODE ENDS
END START
四,实验结果
Press any key to exit!
Show a as hex:
61
本文转自 寂岚峰 51CTO博客,原文链接:http://blog.51cto.com/13271983/1977628,如需转载请自行联系原作者