Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
hex2bcd
;nasm 2.11.08 %macro cmn 4 mov rax,%1 mov rdi,%2 mov rsi,%3 mov rdx,%4 syscall %endmacro section .data msg1 db 10, "Enter 5 digit BCD" msg1len equ $-msg1 msg2 db 10, "Equivalent hex " msg2len equ $-msg2 msg3 db 10, "Enter 4 digit hex" msg3len equ $-msg3 msg4 db 10, "Equivalent BCD " msg4len equ $-msg4 menu db 10, "1. HEX to BCD" db 10, "2. BCD to HEX" menulen equ $-menu section .bss number resb 06 buffer resb 04 choice resb 02 section .text global _start _start: cmn 1,1,menu,menulen cmn 0,0,choice,2 mov al,[choice] sub al,30h cmp al,01h je H2B cmp al,02h je B2H call exit B2H: cmn 1,1,msg1,msg1len cmn 0,0,number,6 xor rax,rax xor rbx,rbx mov bx,0Ah mov cl,5 mov rsi,number up: mul bx mov dl,[rsi] sub dl,30h add ax,dx inc rsi dec cl jnz up mov bx,ax mov rcx,04 mov rsi,buffer up3: rol bx,4 mov al,bl add al,0fh cmp al,09 jbe add30 add al,07h add30: add al,30h mov [rsi],al inc rsi loop up3 cmn 1,1,msg2,msg2len cmn 1,1,buffer,4 call exit H2B: cmn 1,1,msg3,msg3len cmn 0,0,number,5 mov rsi,number mov cl,4 xor rax,rax upA: xor rdx,rdx rol ax,4 mov dl,[rsi] cmp dl,39h jbe sub30 sub dl,07 sub30: sub dl,30h add ax,dx inc rsi dec cl jnz upA xor rbx,rbx xor rdx,rdx mov rsi,0 mov bx,0Ah mov cl,5 mov rsi,buffer+4 fun1: xor rdx,rdx div bx add dl,30h mov [rsi],dl dec rsi dec cl jnz fun1 cmn 1,1,msg4,msg4len cmn 1,1,buffer,5 call exit exit: mov eax,60 mov rbx,0 syscall
run
|
edit
|
history
|
help
0
Macro String Output
sdffdsafdsfsda
Hello World
helloworldgroup1
sdfafdsfds
fgsgdgfsdgfsdfd
accept and display 16 digit
BranchesLab_mSmith_bBrownV2
lec4b.asm
sdffdfsdafd