Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print: .asciz "Multiplicand: 0x%x, Product: 0x%x, Multiplier: 0x%x\n"
- .section ".text"
- .align 4
- .global main
- main: save %sp, -96, %sp
- calc1: set 83754, %l0 !multiplier
- set 23421, %l1 !multiplicand
- mov 0, %l2 !product
- mov 1, %l3 !counter
- set print, %o0
- mov %l1, %o1
- mov %l2, %o2
- mov %l0, %o3 !print1
- call printf
- nop
- clr %l6
- tst %l0
- bl,a loop
- mov 1, %l6
- loop: cmp %l3, 32
- bg ifneg
- nop
- btst 0x1, %l0
- be next
- nop
- add %l2, %l1, %l2 !add multiplicand to product
- next: and %l2, 1, %l5
- srl %l2, 1, %l2
- srl %l0, 1, %l0 !shifty
- sll %l5, 31, %l5
- bset %l5, %l0
- inc %l3
- ba loop
- nop
- ifneg: cmp %l6, 1
- bne pos
- nop
- ! tst %l1
- ! bl else
- ! nop
- sub %l2, %l1, %l2
- ! ba pos
- ! nop
- !else: clr %l2
- pos: set print, %o0 !print2
- mov %l1, %o1
- mov %l2, %o2
- mov %l0, %o3
- call printf
- nop
- end: mov 1, %g1 !trap dispatch
- ta 0 !trap to system
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement