汇编,小写字母转大写字母【解惑】
;Ex502
dseg segment
Msg1 db 'Input a lowercase letter:$'
Msg2 db 0dh,0ah,'Uppercase letter is:'
Result db ?
db '$'
dseg ends
cseg segment
assume cs:cseg,ds:dseg
Start:
mov ax,dseg
mov ds,ax
lea dx,Msg1
mov ah,09h
int 21h
mov ah,1
int 21h
cmp al,'a'
jb Exit
cmp al,'z'
ja Exit
sub al,20h
mov Result,al
lea dx,Msg2
mov ah,9
int 21h
Exit: mov ah,4ch
int 21h
cseg ends
end Start
我遇到的问题是:编译连接成功后,生成exe文件,执行exe文件时,我实际操作的时候就是已输入键盘字母,它就退出了,很诡异;
我用debug跟踪了,跟踪的时候执行到
lea dx,Msg1
mov ah,09h
int 21h
完了以后程序就乱了 ,也就是说下面的程序通通没有执行,但是我
不清楚这里怎么会跳转?
注意:在跟踪调试时,如果遇到int 21h,不能按t,而要按p,ok,问题解决了。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步