Overlap Block Transfer : MIT


;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

SHARE
    Blogger Comment
    Facebook Comment