例:某计算机指令系统采用定长指令字格式,指令字长 16 位,每个 操作数的地址码长 6 位。指令分二地址、单地址和零地址 3 类。若二地址指令有k条,零地址指令有L条,则单地址指令最多有多少条?
解:二地址操作数地址码共占用2*6=12位,所以只剩下4位可以作为操作码,共有2^4=16种状态,其中二地址指令以供用了k条,那么这4位留下(16-k)种状态可以给一地址拓展使用;
一地址地址码有6位,操作码有10位,但是这10位中有4位只能使用二地址指令里的没使用的(16-k)种,那么共有(16-k)*2^6种状态,假设一地址指令使用了x种状态,那么还剩下((16-k2)*2^6-x)种状态给零地址指令拓展使用。
零地址指令有操作码16位,其中10位只剩((16-k2)*2^6-x)种状态可以使用,那么零地址指令共有((16-k)*2^6-x)*2^6=L种。
解得单地址指令有x=(16 − k) × 2^6 − L/2^6条。
reference: