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標籤。目錄特點與區別...