乘法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定址的角度出發,將記憶體中的物理連續區...