汇编语言编程实验
实验要求
![在这里插入图片描述](https://img-blog.csdnimg.cn/f68f5d6b7553480aafe4d609a50fc606.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5om-5LiA5Liq5qCR5rSe5bCx56yR5ZCn,size_20,color_FFFFFF,t_70,g_se,x_16)
汇编代码:
DATA SEGMENT
id DB '00000000000 myname',0Ah,0DH,'$'
hello DB 'Welcome',0AH,0DH,'input Q or q to exit',0AH,0DH,'ID and Name are:','$'
input DB 0AH,0DH,'This is a program to change char to ASCII(HEX)',0AH,0DH,'input here:','$'
asciishow DB 0AH,0DH,'ASCII(HEX) is:','$'
get_char DB ' '
DATA ENDS
CODE SEGMENT
assume cs:CODE,ds:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET hello
MOV AH,09H
INT 21H ;AH=09:显示字符串hello
MOV DX,OFFSET id
INT 21H ;AH=09:显示字符串id
LABEL1: MOV DX,OFFSET input
MOV AH,09
INT 21H ;AH=09:显示字符串getinput
MOV AH,01H
INT 21H ;AH=01H:键盘输入并回显
CMP AL,'Q'
JE exit
CMP AL,'q'
JE exit
MOV get_char,AL
MOV DX,OFFSET asciishow
MOV AH,09H
INT 21H ;AH=09:显示字符串asciishow
MOV SI,OFFSET get_char
MOV AL,DS:[SI]
AND AL,0F0H ;只保留高4位
MOV CL,4
SHR AL,CL ;把高四位右移至低四位
CMP AL,0AH
JB LABEL2
ADD AL,07H
LABEL2: ADD AL,30H
MOV DL,AL ;输出字符存放在DL中
MOV AH,02H
INT 21H ;AH=02H,显示输出
MOV AL,DS:[SI]
AND AL,0FH ;只保留低四位
CMP AL,0AH
JB LABEL3
ADD AL,07H
LABEL3: ADD AL,30H
MOV DL,AL ;输出字符存放在DL中
MOV AH,02H
INT 21H ;AH=02H,显示输出
LOOP LABEL1
exit: MOV AX,4C00H
INT 21H ;退出程序
CODE ENDS
END START
实验结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/42f15d3a44974ac59e3e4d84e7f97840.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5om-5LiA5Liq5qCR5rSe5bCx56yR5ZCn,size_14,color_FFFFFF,t_70,g_se,x_16)