问题描述
LD BC,(1900H)
LD B,8
LD DE,(1901H)
LD D,0
LD HL,0
SRL C
JR NC,NOADD
ADD HL,DE
SLA E
RL D
DEC B
JP NZ,MULT
LD (1902H),HL
HALT
.END
错误消息:
- 指令的无效参数。 'NOADD'
- 无效的指令参数。 'MULT'
解决方法
您需要为希望这些说明跳转到的地址定义标签。否则,汇编器将不知道要使用哪个地址。
,以下是适合您的16x16-> 16的示例:
; MUL16 - MULTIPLY TWO SIXTEEN BIT NUMBERS WITH A 16 BIT RESULT.
; DE = MULTIPLICAND
; BC = MULTIPLIER
; HL = PRODUCT
;
; DE*BC=HL
;
EXPORT MUL16
MUL16
LD A,C ; MULTIPLIER LOW PLACED IN A
LD C,B ; MULTIPLIER HIGH PLACED IN C
LD B,16D ; COUNTER (16 BITS)
LD HL,0 ;
MULT
SRL C ; RIGHT SHIFT MULTIPLIER HIGH
RRA ; ROTATE RIGHT MULTIPLIER LOW
JR NC,NOADD ; TEST CARRY
ADD HL,DE ; ADD MULTIPLICAND TO RESULT
NOADD
EX DE,HL
ADD HL,HL ; SHIFT MULTIPLICAND LEFT
EX DE,HL ;
DJNZ MULT ;
RET
请注意,您的汇编器(我们未知)可能要求标签和/或注释的语法不同。汇编程序的文档是找到这些详细信息的最佳位置。