組合語言之資料處理

2021-09-29 00:18:26 字數 1045 閱讀 6000

機器指令資料處理的位置

彙編**

指令前資料的位置

mov bx,[0]

記憶體單元 ds:0

mov bx,ax

cpu內部,ax暫存器

mov bx,1

cpu內部,指令緩衝器

先來介紹下等下需要用到的名詞

sa 表示段位址

ea表示偏移量

段字首指令mov ax,[0]中,記憶體單元的段位址預設為ds,我們可以顯示的在訪問記憶體單元的指令中顯示的給出記憶體單元的段位址所在的暫存器,例如

mov ax,ds:[0]

mov ax,cs:[0]

mov ax,ss:[0]

mov ax,es:[0]

這些出現在訪問記憶體單元的指令中,用於顯示的指明記憶體單元的段位址的"ds",:cs",「ss」,「es」,在彙編中成為段字首

[bx]

mov ax,[bx]
bx中存放的資料作為乙個偏移位址ea,他的預設sa為ds 上面則為 (ax) = ((ds)*16+(bx))

[si]、[di]

si和di是和bx功能相近的暫存器,si和di不能夠分成兩個8位暫存器來使用,下面的三組指令實現的功能相同

mov bx,0

mov ax,[bx]

mov si,0

mov ax,[si]

mov bi,0

mov ax,[bi]

[dp]

mov ax,[dp]
bx中存放的資料作為乙個偏移位址ea,他的預設sa為ss 上面則為 (ax) = ((ss)*16+(dp))

下面是一張cpu定址方式圖

組合語言之定址方式

1 固定定址 inherent addressing 特定的單運算元指令,運算元隱含在操作碼中,在固定定址的指令中,運算元被隱含在指令中,不需要執行匯流排週期,執行速度快 例子 1.1 cbw命令,將al中的符號位擴充套件到ah中,形成16位的運算元。比如al中的符號位是1,則執行cbw命令後,ah...

組合語言之定址方式

如 mov ax,2a78 表示將乙個記憶體單元中的資料送入ax,這個記憶體單元的長度為2位元組 字單元 存放乙個字,偏移位址為2a78h,段位址 在ds中。如 mov al,10f3 表示將乙個記憶體單元中的資料送入al,這個記憶體單元的長度為1位元組 位元組單元 存放乙個位元組,偏移位址為10f...

組合語言之堆疊框架

堆疊框架 stack frame 也稱活動框架 activation record 他是為傳遞的引數 子例程的返回位址 區域性變數和儲存的暫存器保留的堆疊空間。堆疊框架的建立步驟 1 如果有傳遞的引數,則壓入堆疊 2 子例程被呼叫,子例程的返回位址壓入堆疊 3 子例程開始執行時,ebp被壓入堆疊 4...