Flowchart of
Multiplication Algorithm
Step
|
Ax
|
Dx
|
Bx
|
Operation
|
0
|
0000 0000
|
1100
|
0000 1001
|
Initialization
|
1
|
0000 0000
0000 0000
|
1100
0110
|
0001 0010
0001 0010
|
Shift left B
Shift right Q
|
2
|
0000 0000
0000 0000
|
0110
0011
|
0010 0100
0010 0100
|
Shift left B
Shift right Q
|
3
|
0010 0100
0010 0100
0010 0100
|
0011
0011
0001
|
0010 0100
0100 1000 0100 1000
|
Add B to A
Shift left B
Shift right Q
|
4
|
0110 1100
0110 1100
0110 1100
|
0001
0001
0000
|
0100 1000
1001 0000
1001 0000
|
Add B to A
Shift left B
Shift right Q
|
64-bit
nasm code
section .data
innum1 db "Enter First 8 bit HEX no: ",10
lennum1 equ $ -innum1
innum2 db "Enter Second 8 bit HEX no: ",10
lennum2
equ $ -innum2
product
db "Multiplication of two HEX no is: ",10
productlen
equ $ -product
section .bss
num1 resb 3
num2 resb 3
result resb 4
%macro output 2 ;macro for output
mov rax,01h
mov rdi,01h
mov rsi,%1
mov rdx,%2
syscall
%endmacro
%macro input 2 ;macro for input
mov rax,00h
mov
rdi,00h
mov
rsi,%1
mov
rdx,%2
syscall
%endmacro
section .text
global _start
_start:
output innum1,lennum1
input num1,03
output innum2,lennum2
input num2,03
mov rsi,num1
call
AtoH
mov
bx,ax
mov rsi,num2
call AtoH
mov dx,ax
; Actual logic for
multiplication of two numbers using add and shift method
xor ax,ax
mov ch,08
again:
bt
dx,0
jnc
skip1
add ax,bx
skip1:
shl bx,1
shr dx,1
dec ch
jnz again
;
logic to convert HEX to ASCII
mov rsi,result
mov ch,04
mov cl,04
again1:
rol ax,cl
mov bl,al
and bl,0fh
cmp bl,09h
jng skip2
add bl,07h
skip2:
add bl,30h
mov [rsi],bl
inc rsi
dec ch
jnz again1
output product, productlen
output result,04
mov rax,3ch
mov rdi,00
syscall
;procedure
to convert ASCII to HEX
AtoH:
xor ax,ax
mov cl,04
mov ch,02
up:
cmp byte[rsi],39h
jng down
sub byte[rsi],07h
down:
sub byte[rsi],30h
shl ax,cl
add al,[rsi]
inc rsi
dec ch
jnz up
ret
Output:
[root@localhost ~]# nasm -f
elf64 mul.asm
[root@localhost ~]# ld -o
mul mul.o
[root@localhost ~]# ./mul
Enter First 8 bit HEX no: 15
Enter Second 8 bit HEX no:
12
Multiplication of two HEX no
is: 017A
Are you having trouble in operating Binance two-factor authentication error? Binance 2fa should be created to protect the account from online threats and if it is not working properly, a user should fix it as soon as possible to avoid any kind of bummers. If you don’t know tips to deal with such issues and looking for guidance, you can always ask for help from the team of elite professionals who are there to guide you. You can always call on Binance phone number which is active and gives you a chance to discuss your queries with the professionals’ team anytime.
ReplyDelete