assembly 8085程序从内存位置过滤掉正数

b1payxdu  于 2022-12-29  发布在  其他
关注(0)|答案(1)|浏览(108)

因此,我需要过滤掉正数,如果小于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

ia2d9nvy

ia2d9nvy1#

“内存内容寄存器”是什么意思?如果你指的是M,它不是一个实际的寄存器,它表示HL寄存器对指向的内存位置的内容。在代码的结尾,HL将有400AH,内存位置400AH可以保存任何垃圾值。
因为你使用的是一个模拟器,内存单元通常初始化为0,你的模拟器显示M的内容为0,这是非常正常的。你应该查看寄存器A的内容。

相关问题