1.si和di
功能和bx相似,只是不能分成2個8暫存器使用。
2inc ax指令
將暫存器的內容加1
mov ax,0
inc ax
執行完畢ax=1
3.bx,si,di,bp暫存器
cpu的核心是暫存器,學習彙編這麼一段時間,我也深刻體會到對暫存器理解的重要性
(1)在8086cpu中,只有這4個暫存器可以在[...]中來進行記憶體單元的定址。比如下面指令是正確的。
mov ax,[bx]
mov ax,[bx+si]
mov ax,[bp]
mov ax,[bp+si]
mov ax,[bp+di]
而下面的指令是錯誤的:
mov ax,[cx]
mov ax,[ax]
mov ax,[dx]
mov ax,[ds]
(2)在[...]中,這4個暫存器可以單個出現,或者只能以四中組合出現:bx和si、bx和di、bp和si、bp和di
比如下面的指令是錯誤的:
mov ax,[bx+bp]
mov ax,[si+di]
(3)只要在[...]中使用暫存器bp,而指令中沒有顯性給出段位址,段位址就預設在ss中,比如:
mov ax,[bp]含義:(ax)=((ss)*16+(bp))
mov ax,[bp+idata]含義:(ax)=((ss)*16+(bp)+idata)
mov ax,ds:[bp]
mov ax,es:[bx]
5.指令要處理的資料有多長?
8086cpu的指令,可以處理倆種尺寸的資料,byte和word。所以在機器指令中要指明,指令進行的是字操作還是位元組操作。對於這個問題,組合語言如下處理:
(1)通過暫存器指明
mov ax,1
mov bx,ds:[0]
上面都是word
mov al,1
mov al,bl
上面都是byte
(2)在沒有暫存器的情況下,用操作符x ptr指明記憶體單元長度,x可以是word或者byte
mov word ptr ds:[0],1
inc word ptr [bx]
inc word ptr [bx],2
彙編基礎知識
最近感覺自己學的到了乙個瓶頸,學的不知道有多少是記住的,總是感覺自己要學的東西有那麼多,時間又太少。專業課也越來越多,花在程式設計上的時間就少了,但是這畢竟是我的興趣愛好,所以我不想放棄。昨晚突然有個想法,以後寫部落格的頻率加快,儘管這樣部落格的質量也就下降了很多,但是我還是覺得部落格就是來記錄我成...
彙編 基礎知識
一 進製數的表示 十進位制後加d,二進位制後加b,八進位制加o,十六進製制加h 二 十進位制數轉換為二進位制數或十六進製制數 使用除2取餘法或使用除16取餘法,結果向上讀,如4,得餘數0 0 1,則相應二進位制為100,十六進製制數類似 三 二進位制數或十六進製制數轉換為十進位制數 使用權的展開式 ...
彙編基礎知識
cpu要從記憶體中讀資料,首先要指定儲存單元的位址,並指明對哪乙個器件進行操作,進行哪種操作,概括起來講,cpu要想進行資料的讀寫,必須和晶元進行下面3類資訊的互動 彙編指令是機器指令的築繼腹,同機器指令一一對應 每一種cpu都有自己的彙編指令集 cpu可以直接使用的資訊在儲存器中存放 在儲存器中指...