我在这个问题上挣扎了一段时间,需要一些帮助。
这个问题是基于EASY68K模拟器处理器的。使用T121模拟器的EASY68K处理器指令集回答以下问题。
在图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发布于 2018-08-28 07:03:45
一些改进
https://stackoverflow.com/questions/52043791
复制相似问题