;OVERLAP BLOCK TRNASFER section .data msg1 db "initial block is :" msg1len equ $-msg1 msg2 db "transfered block is:" msg2len equ $-msg2 nline db 10 space db 20h srcblk db 10h,20h,30h,40h,50h dstblk times 3 db 00 section .bss dispbuff resb 03 %macro print 02 mov rax,1 mov rdi,1 mov rsi,%1 mov rdx,%2 syscall %endmacro section .text global _start _start: print msg1,msg1len print nline,01 mov rsi,srcblk call dispblk_proc print nline,01 mov rsi,dstblk call dispblk_proc print nline,01 mov rsi,srcblk+4 mov rdi,dstblk+2 mov rcx,05 up1: mov al,[rsi] mov [rdi],al dec rsi dec rdi loop up1 print msg2,msg2len mov rsi,srcblk+3 call dispblk_proc print nline,01 mov rax,60 mov rdi,00 syscall dispblk_proc: mov rcx,05 repeat:mov bl,[rsi] push rsi push rcx call disp_proc print space,01 pop rcx pop rsi inc rsi loop repeat ret disp_proc: mov rcx,02 mov rsi,dispbuff up: rol bl,04 mov al,bl and al,0fh cmp al,09 jbe add30 add al,07h add30:add al,30h mov[rsi],al inc rsi loop up print dispbuff,02 ret
Blogger Comment
Facebook Comment