data segment
data_a db 'a' ;左邊界標誌
data_z db 'z' ;右邊界標誌
info db 'please input the right letter $' ;輸入錯誤後提示資訊
data ends
stack segment
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
mov ah,01h ;呼叫系統輸入單字元功能
int 21h
cmp al,data_a ;如果小於 'a' 則提示錯誤資訊
jb error
cmp al,data_z ;如果大於 'z' 則提示錯誤資訊
ja error
sub al,20h ;小寫字母比大寫字母的ascii值大20h
mov dl,al ;系統顯示單字元功能緩衝區為dl
mov ah,02h ;呼叫dos的2號功能-顯示指定單字元
int 21h
jmp exit ;退出,jmp為無條件轉移指令
error:
mov ah,09h
mov dx,offset info ;求得錯誤提示資訊的變數位址並用dx暫存器指定(09號功能顯示的是dx指定資料的內容)
int 21h
jmp exit
exit:
mov ah,4ch ;退出
完善版:
1125 小寫字母變為大寫字母
小寫字母變為大寫字母 time limit 2000ms memory limit 65536k total submit 225 accepted 171 description 寫乙個程式把乙個字串 可能含有空格,長度最長不超過1000 中的小寫字母轉化為大寫字母。input 輸入只有一行,可以...
彙編利用cmp指令將小寫字母轉換為大寫字母
這裡主要是先和0進行比較,如果cx為0了,那麼就直接利用jcxz指令直接跳轉到ret助理,然後再利用cmp指令去進行和小寫a的ascii碼進行比較,比較之後如果是小於就直接再去尋找下乙個字元,程式如下所示 assume cs codesg,ds datasg datasg segment db be...
akoj 1125 小寫字母變為大寫字母
小寫字母變為大寫字母 time limit 2000ms memory limit 65536k total submit 149 accepted 114 description 寫乙個程式把乙個字串 可能含有空格,長度最長不超過1000 中的小寫字母轉化為大寫字母。input 輸入只有一行,可以...