首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

計算機組成原理:累加器(AC)與乘商寄存器(MQ)存放乘積高低位的含義

     編輯:程式設計綜合問答

背景

早期 CPU (如 IA-32 前身、簡易教學機) 進行定點乘法時,兩個 n 位數相乘產生 2n 位乘積,單個通用寄存器放不下。

具體含義

  • AC (Accumulator) 存放乘積高位: 乘積的高 n 位(含符號位)。
  • MQ (Multiplier-Quotient Register) 存放乘積低位: 乘積的低 n 位。

舉例

假設 16 位機器,兩個 16 位有符號整數相乘:


被乘數 X = 0x1234 (4660)
乘數   Y = 0x0002 (2)
乘積   = 0x00002468 (9320)  // 32 位

運算結束後:

  • AC = 0x0000 (高 16 位)
  • MQ = 0x2468 (低 16 位)

若結果為負數 (補碼),高位為符號擴展位 (全 1)。

現代 CPU 差異

x86 MUL/IMUL 指令結果固定放在 DX:AX (16位)、EDX:EAX (32位)、RDX:RAX (64位),無專用 MQ 寄存器,通用寄存器對承擔高低位。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved