IMUL MUL和div的用法

2021-07-10 19:40:43 字數 1315 閱讀 2043

mul是進行無符號乘法的指令。mul(無符號乘法)指令有三種格式:第一種是將8位的運算元於al相乘。第二種是將16位的運算元與ax相乘; 第三種是將32位的運算元與eax進行相乘

乘數和被乘數大小必須相同,乘積的尺寸是乘數/被乘數大小的兩倍。 三種格式都既接受暫存器運算元,也接受記憶體運算元。但是不接受立即運算元(這點大家注意下)。

例如:

你想將al暫存器中的值乘上2,那麼此時你需要將立即數2存放到乙個暫存器中,然後通過mul指令相乘,或者將立即數放到乙個記憶體位址中,然後通過記憶體單元的形式來進行相乘。

舉例:

mov bl, 2

mul bl           ;此刻將bl暫存器中的值乘上al暫存器中的值

指令中唯一的乙個運算元是乘數。

也就是當我們的乘數是8位的時候,則與al相乘,如果我們的乘數是16位則與ax相乘,如果我們的乘數是32位則與eax暫存器相乘。

那麼下面我給出mul乘法的相關運算元的例項

被乘數                 乘數               積

al                   8位運算元                 ax

ax                   16位運算元         dx:ax

eax                 32位運算元               edx:eax

因為如果我們的乘數是乙個8位運算元的話,我們的結果存在在ax暫存器中。 如果是16位運算元的話,我們的結果存放在dx:ax中。如果dx不為0,則進製標誌置位。

在執行完mul指令後,我們一般要檢查下進製標誌。因為我們需要知道乘積的高半部分是否可以安全的忽略。

例如:

mov al, 6h

mov bl, 10h

mul bl  

此刻我們檢查進製標誌cf = 0, 那麼ah我們就可以將其忽略了,所以結果是60h。

那麼我們再來舉乙個例子:

例如:

mov ax, 6000

mov bx, 5000

mul bx

我們檢查進製標誌,此時cf = 1。 那麼我們的結果是dx:ax ,此時我們的dx = 1e00, ax = 0000 所以 最後我們的積 為 1e000000。

其實我們從乘積就可以算出來cf是否置位了。

1.接下來我們留個小作業,不要用其他輔助工具來計算。自己口算下,執行完後,積為多少?

mov eax, 00800000

mov ebx, 00200000

mul ebx

彙編基礎一日一學習31 imul

div與span區別及用法

div與span區別 div占用的位置是一行,span占用的是內容有多寬就占用多寬的空間距離,說明如下圖 分析 從上圖很容易知道 我是內容一 用的div 和 我是內容二 用的div 兩個內容外部用的是標籤,他們得到樣式是占用了一排空間 相當於換行一樣 而 我是內容三 用的span 和 我是內容四 用...

div與span區別及用法

div與span區別及div與san用法篇 接下來了解在div css開發的時候在html網頁製作,特別是標籤運用中div和span的區別及用法。新手在使用web標準 div css 開發網頁的時候,遇到第乙個問題是div與span有什麼區別,什麼時候用div,什麼時候用span標籤。目錄特點與區別...

div與span區別及用法

div與span區別及div與san用法篇 接下來了解在div css開發的時候在html網頁製作,特別是標籤運用中div和span的區別及用法。新手在使用web標準 div css 開發網頁的時候,遇到第乙個問題是div與span有什麼區別,什麼時候用div,什麼時候用span標籤。目錄特點與區別...