因此,我需要过滤掉正数,如果小于FFH,则显示总和,如果不小于FFH,则显示FFH。我在模拟器中键入代码,并使用#DB将数字存储在特定的内存位置。但当我逐步运行时,内存内容寄存器显示00。如何解决此问题?
MVI B,00
MVI C,0A
LXI H,4000
NEXT: MOV A,M
RAL
JC REJECT
RAR
ADD B
JC OVR
MOV B,A
REJECT: INX H
DCR C
JNZ NEXT
STA 8070
OVR: MVI A,FF
HLT
# ORIGIN 4000H
# DB 28H, D8H, C2H, 21H, 24H, 30H, 2FH, 19H, F2H, 9FH
GNUSim8085
1条答案
按热度按时间ia2d9nvy1#
“内存内容寄存器”是什么意思?如果你指的是
M
,它不是一个实际的寄存器,它表示HL
寄存器对指向的内存位置的内容。在代码的结尾,HL
将有400AH
,内存位置400AH
可以保存任何垃圾值。因为你使用的是一个模拟器,内存单元通常初始化为0,你的模拟器显示
M
的内容为0,这是非常正常的。你应该查看寄存器A
的内容。