我已经在这个问题上苦苦挣扎了一段时间,需要一些帮助。
本题基于EASY68K模拟器处理器。使用 EASY68K 模拟器的 T121 处理器指令集回答以下问题。
重写图 Q3 中的程序,以包含一个添加一系列整数的子程序。子程序应该执行循环的功能。子程序占用主程序下方的内存空间。使用 SUM 作为子程序地址标签。
图 Q3
ORG $1000
START MOVE #$2000,A0
MOVE.B #$08,D0
MOVE.L #$0,D1
LOOP ADD.B (A0)+,D1
SUB.B #$01,D0
BNE LOOP
LSR #$03,D1 ; Logical Shift Right by 3 places
MOVE.B D1, $2050
STOP #$2700
初始化并使用测试数据:1、2、3,……直到问题 3(b) 中推导出的循环计数器。假设在程序开始之前所有数据寄存器的内容都设置为零。
这是我的工作。我不确定我是否做得对,因为我不明白如何解决这个问题。
ORG $1000
START MOVE #$2000,A0
MOVE.B #$08,D0
MOVE.L #$0,D1
BSR SUM ;BRANCH SUMBROUTINE
STOP #$2700
SUM ADD.B (A0)+,D1
SUB.B #$01,D0
BNE SUM
LSR #$03,D1 ; Logical Shift Right by 3 places
MOVE.B D1, $2050
RTS
ORG $2000
DATA DC.B $1,$2,$3,$4,$5,$6,$7,$8 ; Define constant.
END START