【发布时间】:2016-03-14 08:20:25
【问题描述】:
我无法弄清楚如何让我的代码仅访问基于分支语句的某些函数。而不是跳过它不等于的函数,它只是通过第一个函数,然后永远循环,只在我希望它在一定长度后停止并且只访问它需要访问的函数时才访问第一个函数。我编写了 C++ 代码来帮助我弄清楚我缺少什么并且我得到了它的工作,但我不知道如何将它转换成汇编语言。如果有人能给我一些建议或者给我更多关于如何使用每个分支以及哪些分支在这种情况下可以很好地工作的说明,那就太好了。提前致谢! :D
XDEF Entry ; export 'Entry' symbol
ABSENTRY Entry ; for absolute assembly: mark this as application entry point
ROM: EQU $0400
DATA: EQU $1000
PROG: EQU $2000
ORG DATA
ORG PROG
EQUATION FCB $05, $01, $02, $2B, $04, $2A, $2B, $03, $2D ;(512+4*+3-)
INDEX FCB $00
TEMP FCB $00
; Insert your code following the label "Entry"
Entry: ; KEEP THIS LABEL!!
LDS #PROG
LDX #EQUATION
LDAB INDEX
LOOP:
LDAA B,X
TSTA
CMPA #$2F
BEQ DIVIDE
DIVIDE:
STAB TEMP
PULX
PULD
IDIVS
PSHD
PULA
LDAB TEMP
BRA RET
CMPA #$2D
BEQ SUBTRACT
SUBTRACT:
STAB TEMP
PULB
PULA
SBA
PSHA
LDAB TEMP
BRA RET
CMPA #$2B
BEQ ADD
ADD:
STAB TEMP
PULA
PULB
ABA
PSHA
LDAB TEMP
BRA RET
CMPA #$2A
BEQ MULTIPLY
MULTIPLY:
STAB TEMP
PULA
PULB
MUL
PSHA
LDAB TEMP
BRA RET
PSHA
RET:
INCB
CMPB $09
BHI LOOP
; Branch to end of program
BSR FINISH
FINISH: END
使用飞思卡尔 CodeWarrior IDE
【问题讨论】: