27/03/2023 - oregon ha scritto:
Cosa e dove stampi nel codice? Non puoi stampare un valore binario ma una stringa ASCII.
E poi non ti viene chiesto di stampare i numeri e ti viene chiesto di stampare nummax e non lo fai
Usa o tag code per il codice
si mi sono accorto successivamente che non devo stampare
il codice, tolte le stampe, è questo
quando lo eseguo non mi da errori e logicamente non stampa nulla, quindi mi sto rivolgendo a voi per chiedervi se il codice qui sotto è corretto oppure no
se no cosa devo modificare?
; Scrivere un programma in assembly x86 che determini il massimo tra due interi a 64bit situati in memoria alle locazioni di indirizzo 'num0' e 'num1'
; memorizzando il risultato alla locazione di registro 'nummax'
section .data
num0 dq 30
num1 dq 25
lnum0 equ $-num0
lnum1 equ $-num1
nummax dq 0
section .bss
section .text
global _start
_start:
mov rsi, qword [num0]
mov rdi, qword [num1]
cmp rsi, rdi ;confronta i valori presenti in num0(esi) e num1(edi)
jg _snum0 ; se vero (num0>num1) salta alla stampa di num0
mov rax, rbx ;altrimenti carica rbx in rax
_snum0:
mov qword [nummax], rax
_fine:
mov eax, 1
mov ebx, 0
int 0x80