Professional Documents
Culture Documents
PL 4
PL 4
Rollno:- 151
Batch:- B4
Practical 4
Menu driven ALP for BCD to Hex, Hex to BCD
CODE:-
%macro READ 2
mov rax, 0
mov rdi, 0
mov rsi, %1
mov rdx, %2
syscall
%endmacro
%macro WRITE 2
mov rax, 1
mov rdi, 1
mov rsi, %1
mov rdx, %2
syscall
%endmacro
section .data
db "2.Hex To BCD", 10
db "3. Exit", 10
section .bss
char_buff resb 17
len resq 1
choice resb 2
ans resq 1
char resb 1
cnt resb 1
section .text
global _start
_start:
READ choice, 2
je bcdtohex
je hextobcd
je exit
jmp _start
bcdtohex:
READ char_buff, 17
dec rax
up3:
mul rbx
inc rsi
dec rcx
jnz up3
call display
jmp _start
hextobcd:
READ char_buff, 17
dec rax
call accept
mov rcx, 00
l1:
mov rdx, 00
push rdx
inc rcx
cmp rax, 00
jnz l1
mov byte[cnt], cl
l2:
pop rbx
jbe l3
l3:
mov byte[char], bl
WRITE char, 01
dec byte[cnt]
jnz l2
jmp _start
exit:
mov rax, 60
mov rdi, 00
syscall
accept:
up:
jbe sub30
inc rsi
dec rcx
jnz up
ret
display:
mov rcx, 16
up2:
rol rbx, 04
mov dl, bl
jbe add30
add30:
mov byte[rsi], dl
inc rsi
dec rcx
jnz up2
WRITE char_buff, 16
ret
OUTPUT:-