王爽彙編5 6

2021-09-11 04:20:59 字數 862 閱讀 2019

[bx]表示乙個記憶體單元,它的偏移位址在bx中。只有bx可以這樣寫,ax,cx,dx不可以。

在masm中,mov al,[0]會解釋為mov al, 0,為了要表達從記憶體中讀取資料,則要寫成mov al, ds:[0]

cpu執行loop指令的時候,要進行兩步操作:

1. (cx) = (cx) - 1

2. 判斷cx中的值,不為零則轉至標號處執行程式,如果為零則向下執行。

在組合語言中,標號代表乙個位址。

段字首:

mov ax, ds:[bx]

mov ax, cs:[bx]

mov ax, ss:[bx]

mov ax, es:[bx]

等程式取得所需空間的方法有兩種,一是在引導程式的時候為程式分配,再就是程式在執行的過程中向系統申請。

assume cs: code

code segment

dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

start: mov bx, 0

mov ax,0

mov cx,8

s: add ax, cs:[bx]

add bx,2

loop s

mov ax, 4c00h

int 21h

code ends

end start

引導程式根據什麼設定cpu的cs:ip指向程式的第一條要執行的指令呢?也就是說,如何知道哪一條指令是程式的第一條要執行的指令?這一點,是由可執行檔案中的描述資訊指明的。我們知道可執行檔案由描述資訊和程式組成,程式來自於源程式中的彙編指令和定義的資料;描述資訊則主要是編譯、連線程式對源程式中相關偽指令進行處理所得到的資訊。

王爽彙編7 8

1.在8086cpu中,只有4個暫存器可以用在 中來進行記憶體單元的定址 bx,si,di,bp。2.在 中,這4個暫存器可以單個出現,或只能以4種組合出現 bx和si,bx和di,bp和si,bp和di。3.只要在 中使用暫存器bp,而指令中沒有顯性地給出段位址,段位址就預設在ss中。在沒有暫存器...

王爽彙編9 10

轉移指令 可以修改ip,或同時修改cs和ip的指令統稱為轉移指令。8086cpu的轉移行為有以下幾類 1.只修改ip時,稱為段內轉移,比如 jmp ax。2.同時修改cs和ip時,稱為段間轉移,比如 jmp 1000 0.由於轉移指令對ip的修改範圍不同,段內轉移又分為 短轉移和近轉移。短轉移ip的...

王爽 彙編實驗5

5 5 assume cs code a segment db 1,2,3,4,5,6,7,8 a ends b segment db 1,2,3,4,5,6,7,8 b ends c segment db 0,0,0,0,0,0,0,0 c ends code segment start mova...