王爽彙編7 8

2021-09-11 06:38:06 字數 699 閱讀 2736

1. 在8086cpu中,只有4個暫存器可以用在"[...]"中來進行記憶體單元的定址:bx, si, di, bp。

2. 在[...]中,這4個暫存器可以單個出現,或只能以4種組合出現:bx和si, bx和di, bp和si, bp和di。

3. 只要在[...]中使用暫存器bp,而指令中沒有顯性地給出段位址,段位址就預設在ss中。

在沒有暫存器名存在的情況下,用操作符x ptr 指明記憶體單元的長度,x在彙編指令中可以為word或byte。

mov word ptr ds:[0], 1

一般來說,我們可以用[bx+idata+si]的方式來訪問結構體中的資料。用bx定位整個結構體,用idata定位結構體中的某乙個資料項,用si定位陣列項中的每個元素。

div指令:

1. 除數:有8位和16位兩種,在乙個reg或記憶體單元中。

2. 被除數:預設放在ax或dx和ax中,如果除數為8位,被除數則為16位,預設在ax中存放;如果除數為16位,被除數則為32位,在dx和ax中存放,dx存放高16位,ax存放低16位。

3. 結果:如果除數為8位,則al儲存除法操作的商,ah儲存除法操作的餘數;如果除數為16位,則ax儲存除法操作的商,dx儲存除法操作的餘數。

格式如下:

div reg

div 記憶體單元

dup偽指令的格式:

db/dw/dd 重複的次數 dup (重複的資料)

王爽彙編5 6

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中的值,不...

王爽彙編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...