fügen Sie zwei stellige zahlen in NASM(Linux)

Möchte ich hinzufügen, zwei-stellige zahlen in NASM(Linux). Fügen Sie zwei einfache zahlen, ich verwende den folgenden code:

section .text
    global _start    ;must be declared for using gcc
_start:    ;tell linker entry point
    mov     eax,'3'
    sub     eax, '0'
    mov     ebx, '4'
    sub     ebx, '0'
    add     eax, ebx
    add eax, '0'
    mov     [sum], eax
    mov ecx,msg 
    mov edx, len
    mov ebx,1   ;file descriptor (stdout)
    mov eax,4   ;system call number (sys_write)
    int 0x80    ;call kernel
    mov ecx,sum
    mov edx, 1
    mov ebx,1   ;file descriptor (stdout)
    mov eax,4   ;system call number (sys_write)
    int 0x80    ;call kernel
    mov eax,1   ;system call number (sys_exit)
    int 0x80    ;call kernel

section .data
    msg db "The sum is:", 0xA,0xD 
    len equ $ - msg   
    segment .bss
    sum resb 1

Das Ergebnis der code ist 7.Aber wenn trage ich die Nummer 17 im register "eax", zumbeispiel das Ergebnis ist nicht korrekt.In diesem Fall 5.Sagen Sie mir bitte, was ist das problem? Danke!

Schreibe einen Kommentar