问题–编写汇编语言程序来交换存储在8085微处理器中的两个8位数字。
假设–假设有两个8位数字。一个8位数字存储在位置2500的存储地址中,另一个8位数字存储在位置2501的存储地址中。令05存储在位置2500,06存储在位置2501(不一定是两个8位数字)。
例子 –
算法 –
- 用任一位置(2500或2501或任何给定位置)的内容向累加器加载。
- 将累加器的内容移动到任何寄存器中(例如B),以便可以将另一个位置的内容加载到累加器中,并将累加器的先前数据保存到寄存器中。
- 将累加器的内容存储到另一个位置(数据2501至2500)。
- 用寄存器的内容加载累加器,然后将其存储到另一个地址位置。
程序 –
Address | Mnemonics | Comments |
---|---|---|
2000 | LDA 2500 | A<-[2500] |
2003 | MOV B,A | B<-A |
2004 | LDA 2501 | A<-[2501] |
2007 | STA 2500 | 2500<-[A] |
200A | MOV A,B | A<-B |
200B | STA 2501 | 2501<-[A] |
200E | HLT | Terminates the program |
解释 –
- LDA 2500 –内容为2500的负载累加器
- MOV B,A –将累加器的内容复制到寄存器B
- LDA 2501 –具有位置2501内容的蓄能器
- STA 2500 –将累加器的内容存储到位置2500
- MOV A,B –将寄存器B的内容复制到累加器
- STA 2501 –将累加器的内容存储到位置2501
- HLT –终止程序