Exercício de aula - Subtração simples. #4

Open
opened 2025-07-07 22:02:07 -03:00 by augusto-vieira · 0 comments

Subtração Simples.

; Realizar uma operação de subtração. 
; Resultado deve ser o estado de termino do programa.

; rax  = exit que tem o valor de 60
; rdi  = resultado da subtração 

section .text

global _start

_start:
    mov rax, 100
    sub rax, 58
    mov rdi, rax
    mov rax, 60
    syscall 

Analisando a saída:

$ objdump -d -M intel teste

teste:     file format elf64-x86-64

Disassembly of section .text:

0000000000401000 <_start>:
  401000:       b8 64 00 00 00          mov    eax,0x64
  401005:       48 83 e8 3a             sub    rax,0x3a
  401009:       48 89 c7                mov    rdi,rax
  40100c:       b8 3c 00 00 00          mov    eax,0x3c
  401011:       0f 05                   syscall

SUB (Opcode 83)
11 101 000 (Formato de Modo)

Opcode Instrução Descrição
REX.W + 83 /5 ib SUB r/m64, imm8 Subtract sign-extended imm8 from r/m64.

MOV (Opcode 89)
11 000 111 (Formato de Modo)

Opcode Instrução Descrição
REX.W + 89 /r MOV r/m64, r64 Move r64 to r/m64.
Subtração Simples. ```asm ; Realizar uma operação de subtração. ; Resultado deve ser o estado de termino do programa. ; rax = exit que tem o valor de 60 ; rdi = resultado da subtração section .text global _start _start: mov rax, 100 sub rax, 58 mov rdi, rax mov rax, 60 syscall ``` Analisando a saída: ```asm $ objdump -d -M intel teste teste: file format elf64-x86-64 Disassembly of section .text: 0000000000401000 <_start>: 401000: b8 64 00 00 00 mov eax,0x64 401005: 48 83 e8 3a sub rax,0x3a 401009: 48 89 c7 mov rdi,rax 40100c: b8 3c 00 00 00 mov eax,0x3c 401011: 0f 05 syscall ``` `SUB` *(Opcode 83)* `11 101 000` (Formato de Modo) | Opcode | Instrução | Descrição | |-----------------|--------------------------|---------------------------------------------------| | `REX.W + 83 /5 ib` | `SUB r/m64, imm8` | Subtract sign-extended imm8 from r/m64. | `MOV` *(Opcode 89)* `11 000 111` (Formato de Modo) | Opcode | Instrução | Descrição | |-----------------|--------------------------|------------------------------------------------| | `REX.W + 89 /r` | `MOV r/m64, r64` | Move r64 to r/m64. |
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: blau_araujo/pbn#4
No description provided.