簡介 :
設計一個程序 :
data segment
db "Hello world"
db 11 dup(0)
data ends
將第一個字符串中的所有字符轉換為大寫字符 , 并對應地保存在下面的內存單元中
要求使用子程序設計的思想 , 小寫轉大寫作為一個子程序進行設計
代碼 :
assume cs:code,ds:data,ss:stack
data segment
db "HelloASM"
db 8 dup(0)
data ends
stack segment
db 16 dup(0)
stack ends
code segment
start:
; 初始化數據段寄存器
mov ax, data
mov ds, ax
; 初始化棧段寄存器
mov ax, stack
mov ss, ax
; 初始化棧偏移地址寄存器
mov sp, 00A0H
; 準備循環 , 設置循環次數
mov cx, 0008H
; 初始化指向字符的寄存器
mov si, 0
mov di, 0
my_loop:
mov bl, ds:[si]
call upper
mov ds:[di + 8], bl
inc si
inc di
loop my_loop ; 注意循環結束后一定要跳到正常結束程序的 finish 標號
; 否則 upper 還會執行一次 , 這樣程序就會錯亂
jmp finish
; 功能 : 將一個小寫字符轉換為大寫字符
; 參數 : bl
; 返回 : bl
upper:
and bx, 11011111B ; 轉大寫
ret
finish:
mov ax,4cH
int 21H
code ends
end start
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。