1

所以我需要过滤掉正数并在小于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

4

1 回答 1

0

“内存内容寄存器”是什么意思?如果您指的是它不是实际的寄存器,则它表示寄存器对M指向的内存位置的内容。HL在您的代码末尾HL将有400AH并且内存位置400AH可以保存任何垃圾值。

由于您使用的是内存单元通常初始化为 0 的模拟器,因此您的模拟器显示的内容M为 0,这是完全正常的。你应该看的是 register 的内容A

于 2021-06-25T15:24:41.347 回答