问题–在8085微处理器中编写程序,以找出两个8位数字中的较大数字,其中数字存储在内存地址2050和2051中,并将结果存储到内存地址3050中。
例子 –
算法 –
- 从存储器2050和2051加载两个数字到寄存器L和H。
- 将一个数字(H)移动到累加器A,然后从中减去另一个数字(L)。
- 如果结果为正,则将数字(H)移至A并将A的值存储在内存地址3050并停止,否则将数字(L)移至A并将A的值存储在内存地址3050并停止。
程序 –
MEMORY ADDRESS | MNEMONICS | COMMENT |
---|---|---|
2000 | LHLD 2050 | H<-(data at 2051)&L<-(data at 2050) |
2003 | MOV A, H | A<-H |
2004 | SUB L | A<-A-L |
2005 | JP 200D | JUMP TO 200D IF NO. IS POSITIVE |
2008 | MOV A, L | A<-L |
2009 | STA 3050 | A->(in memory 3050) |
200C | HLT | STOP |
200D | MOV A, H | A<-H |
200E | STA 3050 | A->(in memory 3050) |
2011 | HLT | STOP |
解释 –
- LHLD 2050:将数据从存储器2050和2051加载到寄存器L和H。
- MOV A,H:将寄存器H的内容传输到A。
- SUB L:从A中减去寄存器L的内容,并将其存储到A中。
- JP 200D:如果结果为肯定,则跳转到地址200D。
- MOV A,L:将寄存器L的内容传输到A。
- STA 3050:将A的数据存储到内存地址3050。
- HLT ::结束。
- MOV A,H:将寄存器H的内容传输到A。
- STA 3050:将A的数据存储到内存地址3050。
- HLT:结束。