问题–编写汇编语言程序以查找两个数字之间的最小数字。
例子 –
算法 –
- 从内存位置加载内容
- 将累加器的内容移至寄存器B
- 从内存位置加载内容
- 比较寄存器B的内容
- 如果进位标志等于1,请转到步骤7
- 将寄存器B的内容移至累加器
- 将内容存储到内存
- 程序结束
程序 –
Memory | Memonics | Use Operand | Comments |
---|---|---|---|
2000 | LDA | [2500] | [A]<-[2500] |
2003 | MOV B, A | [B]<-[A] | |
2004 | LDA | 2501 | [A]<-[2501] |
2007 | CMP B | [A]<-[A]-[B] | |
2008 | JC * | [200C] | jump carry |
200B | MOV B, A | [A]<-[B] | |
200C | STA | [2502] | [A]->[2502] |
200F | HLT | STOP |
解释 –
- LDA用于加载累加器(3字节指令)。
- CMP用于补偿累加器的内容(1字节指令)。
- STA用于通过16位地址(3字节指令)直接存储累加器。
- 如果进位(3字节指令),则JC跳转。