Advertisement
LincolnArantes

Troca Valores e mostra na tela

Nov 27th, 2018
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Troca valores e mostra na tela
  2. ; Escrito por Lincoln Cesar dos Reis Arantes
  3. ; Compilador 32 bits on line - https://www.tutorialspoint.com/compile_assembly_online.php
  4.  
  5. section .text
  6.     global _start       ;must be declared for using gcc
  7. _start:   ;tell linker entry point
  8.    
  9.    
  10.  
  11.  
  12.     mov eax, '10' ;numero inicial
  13.     mov ebx, '20' ;numero inicial
  14.    
  15.     ; codigos que fazem a troca
  16.     mov [var], eax
  17.     mov eax, ebx
  18.     mov ebx, [var]
  19.  
  20.    
  21.      mov [var2], eax
  22.      mov [var3], ebx
  23.  
  24.  
  25.    ; primeira mensagem
  26.    
  27.     mov eax, 4    ; sys_write system call
  28.     mov ebx, 1    ; stdout file descriptor
  29.     mov ecx, msg  ; bytes to write
  30.     mov edx, len    ; number of bytes to write
  31.     int 0x80      ; perform system call
  32.  
  33.  
  34.  
  35.   ;printa na tela o resultado da eax
  36.     mov eax, 4    ; sys_write system call
  37.     mov ebx, 1    ; stdout file descriptor
  38.     mov ecx, var2  ; bytes to write
  39.     mov edx, 7    ; number of bytes to write
  40.     int 0x80      ; perform system call
  41.  
  42.  
  43.  
  44.   ; primeira mensagem
  45.    
  46.     mov eax, 4    ; sys_write system call
  47.     mov ebx, 1    ; stdout file descriptor
  48.     mov ecx, msg2  ; bytes to write
  49.     mov edx, len2    ; number of bytes to write
  50.     int 0x80      ; perform system call
  51.  
  52.  
  53.  
  54.   ;printa na tela o resultado da ebx
  55.  
  56.     mov eax, 4    ; sys_write system call
  57.     mov ebx, 1    ; stdout file descriptor
  58.     mov ecx, var3  ; bytes to write
  59.     mov edx, 7    ; number of bytes to write
  60.     int 0x80      ; perform system call
  61.  
  62.  
  63.  
  64.  
  65.    ;saída
  66.  
  67.     mov eax, 1      ;system call number (sys_exit)
  68.     int 0x80        ;call kernel
  69.  
  70. section .data
  71.  
  72. msg db  'O valor trocado da eax agora é: ' ;our dear string
  73. len equ $ - msg         ;length of our dear string
  74.  
  75. msg2    db  0xa,'O valor trocado da ebx agora é: '   ;our dear string
  76. len2    equ $ - msg2            ;length of our dear string
  77.  
  78.  
  79. section .bss
  80.  
  81. var resb 10
  82. var2 resb 10
  83. var3 resb 10
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement