80x86汇编语言编程:按下任意键,以二进制和16进制输出该键所对应的 ASCII 码
来源:互联网 发布:svg3dtagcloud.js 编辑:程序博客网 时间:2024/06/05 17:15
题目要求:按下键盘任意键,分别以二进制和16进制输出该键所对应的 ASCII 码。
比如按下 A 屏幕这样显示:
A --> 01000001B 41H
按下 B,显示:
B --> 01000010B 42H
按回车键结束程序。
题目网址:http://zhidao.baidu.com/question/440654501.html
以前,做而论道曾经编写过以十进制显示键入字符 ASCII 码的程序,链接如下:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/eb25a23cb6d88ff73c6d972f.html
针对本题,只是改改输出部分就行了,程序如下。
;=================================
DATA SEGMENT
MSG0 DB 13, 10, 'This Program Can Change CHAR to BIN and HEX.$'
MSG1 DB 13, 10, 'Please input a char (Enter will finish program) : ', '$'
DATA ENDS
;---------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET MSG0
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
;---------------------------------
LOP:
MOV DX, OFFSET MSG1
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
MOV AH, 1 ;1号功能调用,键入、显示.
INT 21H ;
CMP AL, 13
JZ EXIT ;回车就结束.
PUSH AX
MOV AH, 2
MOV DL, 32 ;空格.
INT 21H
MOV DL, '-'
INT 21H
MOV DL, '-'
INT 21H
MOV DL, '>'
INT 21H
MOV DL, ' '
INT 21H
;------------------------
POP AX
CALL CHANUM ;调用显示程序.
JMP LOP
;---------------------------------
EXIT:
MOV AH, 4CH
INT 21H
;---------------------------------
CHANUM: ;显示AL中的ASCII码.
PUSH AX
;------------------------
MOV CX, 8 ;显示8位二进制数.
MOV AH, 2
B1:
MOV DL, '0'
CMP AL, 80H
JB B2
INC DL
B2:
PUSH AX
INT 21H
POP AX
ADD AL, AL
LOOP B1
;------------------------
MOV AH, 2
MOV DL, 'B' ;显示B,
INT 21H
MOV DL, ','
INT 21H
MOV DL, ' '
INT 21H
;------------------------
POP AX ;下面显示两位16进制数.
MOV AH, 0
MOV BL, 16
DIV BL
PUSH AX
MOV DL, AL
ADD DL, '0'
CMP DL, 3AH
JB H1
ADD DL, 7
H1:
MOV AH, 2
INT 21H
POP AX
MOV DL, AH
ADD DL, '0'
CMP DL, 3AH
JB H2
ADD DL, 7
H2:
MOV AH, 2
INT 21H
;------------------------
MOV AH, 2
MOV DL, 'H' ;显示H.
INT 21H
MOV DL, '.'
INT 21H
RET
;---------------------------------
CODE ENDS
END START
;=================================
程序执行时,显示如下:
C:\MASM>bin_hex
This Program Can Change CHAR to BIN and HEX.
Please input a char (Enter will finish program) : 3 --> 00110011B, 33H.
Please input a char (Enter will finish program) : 4 --> 00110100B, 34H.
Please input a char (Enter will finish program) : 6 --> 00110110B, 36H.
Please input a char (Enter will finish program) : a --> 01100001B, 61H.
Please input a char (Enter will finish program) : A --> 01000001B, 41H.
Please input a char (Enter will finish program) : z --> 01111010B, 7AH.
Please input a char (Enter will finish program) : b --> 01100010B, 62H.
Please input a char (Enter will finish program) : ! --> 00100001B, 21H.
Please input a char (Enter will finish program) : @ --> 01000000B, 40H.
Please input a char (Enter will finish program) : $ --> 00100100B, 24H.
Please input a char (Enter will finish program) :
C:\MASM>
;=================================
原题网址:http://zhidao.baidu.com/question/440654501.html
提问者对回答的评价:谢谢大神
;=================================
- 80x86汇编语言编程:按下任意键,以二进制和16进制输出该键所对应的 ASCII 码
- 80x86汇编语言编程:输入格雷码、输出对应的十进制数字
- 80x86汇编语言编程:二进制输入、十进制输出
- 80x86 汇编语言:键入0~255之间的数,显示对应的二进制和十六进制数
- 80x86汇编语言:输入数字,输出对应月份的英文
- 80x86 汇编语言编程:BCD 码转二进制
- 80x86汇编语言编程:循环显示 26 个小写字母的 ASCII 码
- 80x86 汇编语言编程:输出指定行数的星号
- 用80x86汇编语言,编写一个输出16进制数字的程序
- 80x86汇编语言编程:在屏幕上显示彩色 ASCII 码
- 80x86汇编编程:键入两个8进制数字,相加后以16进制输出
- 用80x86汇编语言编程:键盘输入与显示输出
- 用80x86汇编语言编程:键盘输入数组,再选择输出
- 80x86 汇编语言编程:输入字符串,排序输出
- 80x86 汇编语言编程:有符号数输出
- 编程,输入一个10进制正整数,然后输出它所对应的八进制数。
- 输出所有大写字母和他们所对应的ACSII码
- 80x86汇编语言编程:求两个单元中,有多少个对应的位是不同的
- LeetCode----Power of Three
- 用 8550 和 ULN2003 驱动小型直流电机正反转
- 80x86汇编编程:把一串字符从键盘输入,然后逆序输出
- 大尺寸共阴数码管驱动电路
- ;单片机汇编语言编程:汽车转向灯控制器
- 80x86汇编语言编程:按下任意键,以二进制和16进制输出该键所对应的 ASCII 码
- 如何监控 Tomcat?Zabbix 与 Cloud Insight 对比
- 多路温度检测
- 【SDOI2015】【BZOJ3993】星际战争
- 595输出驱动数码管闪烁
- android 属性系统,SystemProperties 的简介
- 7月21日的特大暴雨中的平民英雄
- 三周年纪念
- mysql 数据库引擎MyISAM,InnoDB