我学习了MAC-1汇编语言,我学会了如何添加(ADDD)以及如何减去(SUBD),但我不知道如何乘法以及如何使用括号#s。
例如:
2 * 5 - (6 + 3)
我想知道如何解决这个问题。
答案 0 :(得分:0)
对于没有乘法指令的CPU(如MAC-1),可以通过重复加法进行乘法运算。
在汇编语言伪代码中,可以通过以下方式完成:
; mult - multiply r1 * r2 (both unsigned), giving r3
:mult load r3, 0 ; initialise result
push r2 ; save register we destroy
:loop cmp r2, 0 ; loop until r2 is zero
jeq :multx
dec r2 ; decrement counter
add r3, r1 ; add other value to sum
jmp :loop ; the go back and try again
:multx pop r2 ; recover original value
ret