彙編基礎學習28

2021-05-02 03:51:18 字數 956 閱讀 2847

文章**

博主 沒落的殘陽

這節來學習下無符號整數的除法運算指令,div(無符號)指令執行8位、16位和32位無符號整數的除法運算。指令中必須是唯一的乙個暫存器或記憶體運算元是除數。

div指令格式:

div 8位暫存器/8位記憶體運算元

div 16位暫存器/16位記憶體運算元

div 32位暫存器/32位記憶體運算元

div指令格式和我們的mul基本可以算作是相反的。那麼我們看下被除數 、 除數、商、餘數之間的關係。

被除數                        除數                                商         餘數

ax                 8位暫存器/8位記憶體運算元                al           ah

dx:ax                16位暫存器/16位記憶體運算元                ax         dx        

edx:eax                32位暫存器/32位記憶體運算元                eax           edx

1. 舉個例子:

mov ax, 0060h

mov bl, 2

div bl  ;al = 30h , ah = 00h

那麼執行完後, 商是30h ,餘數是00h

2. 在舉個例子

執行(6005h/100h),由於我們的出示是16位,所以被除數是放在dx:ax中的。 但是由於被除數是6005h,所以我們必須將dx清0.

xor dx, dx

mov ax, 6005h

mov bx, 100h

div bx

那麼執行後, 我們的ax = 0060h, dx = 0005h。 所以我們的商是60h, 餘數是5h。

很簡單。

彙編基礎學習5

文章 http www.mcany.cn article 280.htm 博主 沒落的殘陽 今天我給大家來講解下我們記憶體中資料的儲存以及訪問。這節課的基礎也是非常重要的。因為80386的資料位址線是32根,所以它一次可以傳送資料是4個位元組。所以我們記憶體單元是按照4個位元組來對齊的。用高階語言的...

彙編基礎學習7

博主 沒落的殘陽 這節來講解一下棧的延伸,堆疊 算是把昨天的整個理論基礎概念,給大家講解下。執行時棧 runtime stack 我們通常稱為 堆疊 這是由我們cpu硬體直接支援的,也是實現過程的呼叫和過程返回機制的基本組成部分。不知道大家是否知道rtl是什麼意思。如果學過程式的人都應該知道這個就是...

彙編基礎學習11

文章 http www.mcany.cn article 286.htm 博主 沒落的殘陽 這節來學習下loop迴圈指令。我們高階語言的堆疊分配初始化可是靠它了呵呵。首先我們來看下它的指令格式。loop 標號 ecx不為零時跳轉至標號迴圈.標號只是寫匯程式設計序時用來表示乙個記憶體位址的。例如 to...