王爽組合語言 暫存器衝突問題

2021-09-11 16:14:42 字數 970 閱讀 5816

題目:設計乙個子程式,功能:將乙個全是字母,以0為結尾的字串,轉化為大寫

定義類似於:  db 'cnversation',0

**如下:

(由於在**塊中排版會有問題,所以就不放在裡面惹)

assume cs:code

;定義要轉換的字元

data segment

db 'word',0

db 'unix',0

db 'wind',0

db 'good',0

data ends

code segment

strart:mov ax,data

mov ds,ax

mov bx,0

mov cx,4          ;四個部分,迴圈4次

s:mov si,bx

call capital      ;call capital模組

add bx,5          ;乙個部分為5個位元組

loop s

mov ax,4c00h

int 21h

capital:push cx          ;壓棧,之所以將cx,si壓棧,是因為change模組中用到了cx和si,為了

push si          ;為了避免衝突

change:mov cl,[si]                    ;當[si]為0時,整體ch,cl都為0,cx為0

mov ch,0                       

jcxz ok                        ;cx為0則跳轉到ok

and byte ptr [si],11011111b    ;將字元轉換為大寫,若用[cl]是無法轉換為大寫的

inc si

jmp short change

ok:pop si

pop cx

retcode ends

end start

《學習筆記》王爽組合語言 再論暫存器

在上篇文章中,我們主要從cpu的角度複習了8086cpu的邏輯結構,形成實體地址的方法和相關的一些暫存器。這篇文章我們一記憶體訪問的角度來繼續學習幾個暫存器。記憶體中字的儲存 cpu中,用16位暫存器來儲存乙個字。高8位存放高位位元組,低8位存放低位位元組。在記憶體中儲存時,由於記憶體單元是位元組單...

組合語言(王爽)第二章暫存器

乙個典型的cpu由運算器 控制器 暫存器等部件組成,部件之間靠內部匯流排連線。運算器進行資訊處理,暫存器進行資訊儲存 控制器控制各部件進行工作,內部匯流排連線各部件以進行資料的傳輸。不同的cpu暫存器的個數和結構都是不盡相同的。2.1通用暫存器 以8086為例,其內部所有暫存器都是16位的,即兩個位...

組合語言 暫存器

乙個典型的cpu由運算器 控制器 暫存器等器件組成,這些器件靠內部匯流排相連。通用暫存器 ax bx cx dx 段位址暫存器 cs ds es ss 專用暫存器 bp sp si di 指令指標暫存器 ip 標誌暫存器 psw ah al ax accumulator 累加暫存器 bh bl bx...