先决条件– 8086程序查找数字的平方根
问题–编写一个程序以找到一个理想数字的平方根,其中代码的起始地址为2000 ,数字存储在3000的存储地址中,并将结果存储到3002的存储地址中。
例子 –
算法 –
- 移动0000立即注册CX
- 将存储器3000的值移到寄存器BX中
- 将CX移到AX中
- 累加器的值乘以CX
- 比较AX与BX
- 如果为零则跳到步骤
- 将CX寄存器增加1
- 如果没有零,则跳至步骤3
- 将寄存器CX的内容移入存储器3002
- 停止
程序 –
Memory | Mnemonics | Operands | Comment |
---|---|---|---|
2000 | MOV | CX, 0000 | [CX] <- 0000 |
2003 | MOV | BX, [3000] | [BX] <- [3000] |
2007 | MOV | AX, CX | [AX] <- [CX] |
2009 | MUL | CX | [AX] <- [AX] * [CX] |
200B | CMP | AX, BX | [AX] – [BX] |
200D | JZ | 2015 | Jump if zero |
2010 | INC | CX | [CX] <- [CX] + 1 |
2012 | JNZ | 2007 | Jump if not zero |
2015 | MOV | [3002], CX | [3002] <- CX |
2019 | HLT | Stop |
说明–寄存器AX,BX,CX用于通用。
- MOV用于传输数据
- INC用于将给定寄存器增加1
- 如果JNZ不为零,则使用JNZ跳至给定的步骤
- 如果JZ为零,则使用JZ跳至给定的步骤
- MUL用于将AX的值与给定的寄存器相乘
- CMP用于比较两个寄存器的值
- HLT用于暂停程序