彙編完成 「輸入小寫字母,輸出大寫字母」

2021-09-10 08:35:52 字數 2140 閱讀 3275

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 輸入只有一行,可以...