文章**
博主 沒落的殘陽
這節來學習下無符號整數的除法運算指令,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...