學習筆記 8086中的乘法和除法

2022-03-26 14:55:02 字數 379 閱讀 9434

乘法mul:

要麼都是8位,要麼都是16位

8位情況下:

預設運算元在al中,另外乙個運算元可以是暫存器,也可以是記憶體單元

結果儲存在ax中

16位情況下:

預設運算元在ax中,結果高16位放在dx中,低16位放在ax中

除法div:

要麼被除數是16位,除數是8位。要麼被除數是32位,除數是16位

除數是8位的情況下:

被除數預設放置在ax中,除數可以是暫存器或者是記憶體單元

結果放置在ax中,高8位ah放置餘數,低8位al放置商

除數是16位的情況下:

ax放置被除數的低16位,dx放置被除數的高16位

結果商放置在ax中,餘數放置在dx中

除法和乘法的移位處理

用移位實現乘除法運算 a a 4 b b 4 可以改為 a a 2 b b 2 說明 除2 右移1位 乘2 左移1位 除4 右移2位 乘4 左移2位 除8 右移3位 乘8 左移3位 通常如果需要乘以或除以2的n次方,都可以用移位的方法代替。大部分的c編譯器,用移位的方法得到 比呼叫乘除法子程式生成的...

8086CPU學習筆記 8086的定址方式

認真寫好一篇文章 計算機的指令通常包含操作碼和運算元兩部分。指令有單運算元 雙運算元和無運算元三種,其中雙運算元的兩個運算元要用逗號隔開,逗號左邊是目的運算元,逗號右邊是源運算元。例如 mov ax,cx 該指令將cx暫存器中的數值放到ax暫存器中,其中mov為操作碼,ax為目的運算元,cx為源運算...

8086組合語言學習 三 8086中的段和棧

8086對記憶體定址的方式是通過段位址 16 偏移位址的方式實現的,而在16位的8086cpu下,段位址和偏移位址也都是16位的。這意味著,對於任意乙個段,段的起始位址必定為16的倍數 段位址 16 需要注意,記憶體段的概念並不是記憶體硬體所固有的,而是從cpu定址的角度出發,將記憶體中的物理連續區...