80x86 汇编语言:键控顺序显示不同符号序列
2016-01-25 12:10
405 查看
;80x86汇编语言
;程序一开始循环显示0、1...9,按空格键后循环显示A、B...Z,再按空格键显示数字,按其它结束。
;题目链接:http://zhidao.baidu.com/question/2202638368467673828.html
;做而论道编程如下:(2014-06-09 18:48 提问者采纳)
;=========================================================
ASSUME CS:CC, DS:QW
;-------------------------
QW SEGMENT
XX DB '0'
ZZ DB 1
QW ENDS
;-------------------------
CC SEGMENT
START:
MOV AX, QW
MOV DS, AX
;-------------------
M_LOP:
CALL OUT_CHR
MOV AH, 1 ;键盘状态
INT 16H ;读
JZ WT
MOV AH, 0 ;键盘内容
INT 16H ;读
CMP AL, ' '
JNE EXIT
INC ZZ
TEST ZZ, 1
JNZ O_09
MOV XX, 'A'
JMP WT
O_09:
MOV XX, '0'
WT: MOV CX, 3000 ;延时
WT0:MOV DX, 0
WT1:DEC DX
CMP DX, 0
JNZ WT1
LOOP WT0 ;延时结束
JMP M_LOP
;-------------------
EXIT:
MOV AH, 4CH
INT 21H
;-------------------------
OUT_CHR:
MOV AH, 2
MOV DL, XX
INT 21H
MOV DL, ' '
INT 21H
INC XX
CMP XX, '9' + 1
JNZ NEXT1
MOV XX, '0'
RET
NEXT1:
CMP XX, 'Z' + 1
JNZ NEXT2
MOV XX, 'A'
NEXT2:
RET
;-------------------------
CC ENDS
END START
;=========================================================
;程序一开始循环显示0、1...9,按空格键后循环显示A、B...Z,再按空格键显示数字,按其它结束。
;题目链接:http://zhidao.baidu.com/question/2202638368467673828.html
;做而论道编程如下:(2014-06-09 18:48 提问者采纳)
;=========================================================
ASSUME CS:CC, DS:QW
;-------------------------
QW SEGMENT
XX DB '0'
ZZ DB 1
QW ENDS
;-------------------------
CC SEGMENT
START:
MOV AX, QW
MOV DS, AX
;-------------------
M_LOP:
CALL OUT_CHR
MOV AH, 1 ;键盘状态
INT 16H ;读
JZ WT
MOV AH, 0 ;键盘内容
INT 16H ;读
CMP AL, ' '
JNE EXIT
INC ZZ
TEST ZZ, 1
JNZ O_09
MOV XX, 'A'
JMP WT
O_09:
MOV XX, '0'
WT: MOV CX, 3000 ;延时
WT0:MOV DX, 0
WT1:DEC DX
CMP DX, 0
JNZ WT1
LOOP WT0 ;延时结束
JMP M_LOP
;-------------------
EXIT:
MOV AH, 4CH
INT 21H
;-------------------------
OUT_CHR:
MOV AH, 2
MOV DL, XX
INT 21H
MOV DL, ' '
INT 21H
INC XX
CMP XX, '9' + 1
JNZ NEXT1
MOV XX, '0'
RET
NEXT1:
CMP XX, 'Z' + 1
JNZ NEXT2
MOV XX, 'A'
NEXT2:
RET
;-------------------------
CC ENDS
END START
;=========================================================
相关文章推荐
- 此博客记录我的日常学习过程
- 80x86汇编语言--计算 S = 1 + 2*3 + 3*4 + 4*5 + …… + N*(N + 1)
- 80x86汇编语言--关于 π 的近似计算
- 80x86 汇编语言编程:输出指定行数的星号
- 点钞机质量太差了
- 51单片机A/D转换接口扩展,做一个16进制显示的电压表
- Java并发编程:Callable、Future和FutureTask
- 如何在代码中为组件设置dip,sp值
- 过滤非法字符,防止注入式攻击等
- Zabbix高可用,实现zabbix的无缝切换,无故障时间
- 如何成为MySQL DBA
- 51 汇编编程:8255 驱动矩阵键盘和数码管
- OpenBLAS安装手册
- 80x86 汇编语言:输入字符串、显示其中数字
- 80x86 汇编语言,大写变小写,小写变大写,数字原样输出
- 51单片机汇编编程--16位流水灯收缩点亮
- 80x86汇编语言:分类统计
- 51单片机汇编语言:定时器与中断
- servlet(二)
- 51单片机 C 语言编程:单片机定时中断