乘以MAC-1汇编语言

时间:2014-03-12 00:07:16

标签: assembly

我学习了MAC-1汇编语言,我学会了如何添加(ADDD)以及如何减去(SUBD),但我不知道如何乘法以及如何使用括号#s。

例如:

2 * 5 - (6 + 3)

我想知道如何解决这个问题。

1 个答案:

答案 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