问题–从给定的数字列表中计算偶数系列的总和。列表的长度在存储位置2200H中,并且序列从存储位置2201H开始。结果将存储在内存位置2210H中。
例子 –
Input :
2200H= 4H
2201H= 20H
2202H= l5H
2203H= l3H
2204H= 22H
Output :
Result 2210H = 42H
程序 –
MNEMONICS | OPERANDS | COMMENTS |
---|---|---|
LDA | 2200H | [A] <- 2200H |
MOV | C, A | Initialize counter |
MVI | B, 00H | sum = 0 |
LXI | H, 2201H | Initialize pointer |
BACK: | MOV A, M | Get the number |
ANI | 0lH | Mask Bit l to Bit7 |
JNZ | SKIP | Don’t add if number is ODD |
MOV | A, B | Get the sum |
ADD | M | SUM = SUM + data |
MOV | B, A | Store result in B register |
SKIP: | INX H | increment pointer |
DCR | C | Decrement counter |
JNZ | BACK | if counter 0 repeat |
MOV | A, B | Store result in A register |
STA | 2210H | store sum |
HLT | Terminate program execution |
解释 –
微处理器是一种计算机处理器,它在单个集成电路上结合了中央处理单元的功能。
- A是一个8位累加器,用于直接加载和存储数据。
- LDA用于通过16位地址(3字节指令)直接加载累加器。
- MOV,MVI,LDA等指令是数据传输指令。
- ADD用于添加数据。
- HLT用于暂停程序。