xFunKy

2008/7

May 8th, 2012
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; multi-segment executable file template.
  2.  
  3. data segment
  4.     ; add your data here!
  5.     A DB 1,1,0,1,1,1,0,0
  6.     B DB 1,1,1,1,1,1,1,0
  7.     C DB 1,0,0,1,0,0,0,0
  8.     D DB 10 DUP ('A')
  9. ends
  10.  
  11. stack segment
  12.     dw   128  dup(0)
  13. ends
  14.  
  15. code segment
  16. start:
  17. ; set segment registers:
  18.     mov ax, data
  19.     mov ds, ax
  20.     mov es, ax
  21.  
  22.     ; add your code here
  23.     lea si, A
  24.     mov ax, 0
  25.     call ArrIntoByte
  26.     mov bx, ax
  27.     lea si, B
  28.     mov ax, 0
  29.     call ArrIntoByte
  30.     add bx, ax
  31.     lea si, C
  32.     mov ax, 0
  33.     call ArrIntoByte
  34.     add bx, ax
  35.    
  36.     mov cx, 10
  37.     mov ax, 1
  38.     lea si, D
  39.     rol ax, 9
  40.     intoD:
  41.         push bx
  42.         and bx, ax
  43.         jz zero
  44.         one:
  45.         mov [si], 1
  46.         jmp changed
  47.         zero:
  48.         mov [si], 0
  49.         changed:
  50.         pop bx
  51.         shr ax, 1
  52.         inc si            
  53.     loop intoD
  54. ends
  55.  
  56. ArrIntoByte PROC
  57.     push cx
  58.     mov cx, 8
  59.     putInAL:
  60.        or al, [si]
  61.        inc si
  62.        rol al, 1
  63.     loop putInAL
  64.     ror al, 1
  65.     pop cx
  66.     ret
  67. ArrIntoByte ENDP
  68. end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment