Advertisement
caciojg

INB.asm

Aug 2nd, 2012
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; adaptação do programa do capitulo 4 do livro
  2. ; linguagem assembly para IBM PC - Peter Norton.
  3. ; Imprimindo numeros binários
  4. ; 02 de agosto de 2012 - Cacio josé gazola
  5.  
  6.     SECTION .data
  7. descri: db "Adaptação do programa 'imprimindo números binários', CAP 4, \
  8. livro Linguagem assembly para IBM PC",10," de Peter Norton e John Socha"
  9. cdes: equ $-descri
  10. ind: equ 8d
  11. dado: db 0x45
  12. ;buf: db 0,0,0,0,0,0,0,0    ; não resolveu truncagem
  13.  
  14.  
  15.     SECTION .bss
  16. buf: resb 8                 ; buffer com 0's e 1's
  17.  
  18.  
  19.     SECTION .text
  20.     global main
  21.    
  22. imprime:
  23.     mov     edx,8           ; imprime dados do buffer
  24.     mov     ecx,buf
  25.     mov     ebx,1
  26.     mov     eax,4
  27.     int     0x80            ; usando a syscall write
  28.     ret
  29.    
  30. main:
  31.     mov     edx,cdes        ; imprime texto inicial do programa
  32.     mov     ecx,descri
  33.     mov     ebx,1
  34.     mov     eax,4
  35.     int     0x80            ; usando a syscall write
  36.     mov     si,buf          ; si aponta para o inicio do buffer
  37.     mov     cl,ind          ; cl conta 8 bytes do buffer
  38. aqui:  
  39.     mov     al,0            ; prepara o temporario
  40.     rcl     byte[dado],1    ; roda bit para carry
  41.     adc     al,0x1e         ; transforma bit em byte ASCII em al
  42.     mov     [si],al         ; move al para buf
  43.     inc     si              ; si aponta para proximo byte no buffer
  44.     loop    aqui            ; roda 8 vezes
  45.     call    imprime         ; imprime buffer
  46.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement