assembly - 汇编 - 仅显示大写字母
问题描述
所以我想做的是当输入文本时,asdHsExaLzLO 并按下输入输出应该是 HELLO。但是使用我当前的代码没有输出。我做错了什么?我正在尝试将大写字母存储到 OUTPUT 但它似乎无法按我喜欢的方式工作。
.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB 'Enter txt: $'
OUTPUT DB '' ;storing uppercase letters
NEWLINE DB 10, 13, '$'
.CODE
MAIN PROC
MOV AX,@DATA ;DS
MOV DS,AX
;print MSG1
LEA DX,MSG1
MOV AH,9
INT 21H
; loop
loop_top:
MOV AH,1 ;read input
INT 21h
cmp al,0dh ; check for Enter?
je Display1 ; if yes,loop goes to display1
; Uppercase check
sub al, 'A'
cmp al, 'Z'-'A'
jbe uppercase ;if uppercase go to uppercase
uppercase:
MOV al, OUTPUT
jmp loop_top
loop_end:
jmp loop_top
Display1:
LEA DX, NEWLINE
MOV AH,09H
INT 21H
LEA DX,OUTPUT
MOV AH,09H
INT 21H
jmp exit_program
exit_program:
MOV AH,4CH ; DOS
INT 21H
MAIN ENDP
END MAIN
ENDF
解决方案
推荐阅读
- r - 调用 lmer 函数中的回归变量
- java - 从 Java 中的 Servlett 输出流创建 gif
- php - 选项“filters”没有可调用的“setFilters”(“setfilters”)setter方法
- python - 如何快速读取一大块 csv 文件?
- dictionary - ISR 的 GCC 映射文件地址与内存值不同
- javascript - 反应组件道具中的流泛型
- arrays - 迭代删除索引 0 的列表的 Grails3/groovy 错误
- iframe - 检测 iFrame 中对 srcdoc 的支持
- php - 如果电子邮件地址已存在,则在插入时编辑 MySQL 值
- c++ - 无法与 libnvcuvid.so 静态链接