組合語言第八章 資料處理的兩個基本問題

2021-09-29 15:24:32 字數 1682 閱讀 7652

處理的資料在哪個地方?

要處理的資料有多長?

我們首先對暫存器進行乙個分類:

前面三個我們已經學習過了。

把這幾個放在一起,顯然是為了說記憶體定位。

這四個均可以單獨定位記憶體,也可以兩兩組合,但是需要注意以下的寫法是錯的:

mov ax,

[bx+bp]

mov ax,

[si+di]

也就是說bx可以和si、di組合,bp也可以和si、di組合,但是bx和bp不能組合,si和di也不能組合。

那麼bp是幹什麼的呢?

它對應的段位址是ss,而不是ds。

也可以看成棧的呼叫。

一共有三種:

即直接在彙編指令中的資料,也就是idata。

比如:

mov ax,1023h
這裡的1023h就是乙個立即數。

這些資料,在被執行前,是和指令一起放在指令緩衝器中。

這兩個是之前講了很多的了,此處不再贅述。

這個我們之前說了很多,此處做一下總結:

前面我們相當於回答了第乙個問題。

此處我們回答一下第二個問題。

我們知道,在我們之前的學習中,我們處理的基本資料有兩種型別:word和byte

那麼我們是如何通過指令來體現要處理的資料有多長呢?

這個很好理解了。

如果是整個暫存器,如ax,bx,那麼我們要處理的資料就是word。

那麼如果是一半,比如:ah,al,bh,bl,那麼我們要處理的資料就是byte

這裡的x可以是byte或word,可以用於在沒用暫存器情況下指定大小。

舉個例子:

mov byte ptr [bx]

,2

有些指令是有預設的運算元據大小,比如push只操作word

div就是除法的意思。

那麼,我們在使用div時,有三個值得注意的地方:

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

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

結果:如果除數是8位,則al儲存商,ah儲存餘數;如果除數是16位,ax儲存商,dx儲存餘數

使用的格式如下:

div reg

div 記憶體單元

dd的意思是define dword(double word),也就是定義雙字,和之前db、dw類似。

雙字也就是兩個字的大小。

這也是乙個偽指令,是配合dw、db、dd使用的,用來重複填充。

使用方法如下:

db 重複次數 dup (重複的位元組資料)

dw 重複次數 dup (重複的字資料)

dd 重複次數 dup (重複的雙字資料)

我們舉個例子:

db 3 dup (0,1,2)

db 0,1,2,0,1,2,0,1,2

這上面兩個語句是等價的。

第八章是對前面的總結,到這裡也就告一段落了。

組合語言學習第八章 資料處理的兩個基本問題

計算機cpu進行資料處理包括兩個基本的問題 1.資料在何處?2.資料有多大?本章作為乙個前面內容的總結性章節,主要來說明這兩個問題。我們定義兩個符號reg和sreg。其中reg為暫存器,sreg為段暫存器 reg包括 ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp...

第八章 資料處理的兩個基本問題

1 計算機是進行資料處理 運算的機器,那麼有兩個最基本的問題 1.處理的資料在什麼地方?2.要處理的資料有多長?2 定義描述性符號 reg register 暫存器 和sreg segment register 段暫存器 reg的集合包括 ax bx cx dx ah al bh bl ch cl ...

彙編實驗之第八章資料處理的兩個基本問題

一 reg來表示乙個暫存器,用sreg來表示乙個段暫存器。reg的集合包括 ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di serg集合包括 ds,ss,cs,es 二 1 在8086cpu中,只有bx,si,di,bp這四個暫存器可以用在 來進行記憶...