Невозможно получить правильную сумму .ascii - PullRequest
0 голосов
/ 25 апреля 2020

хорошо, я сейчас на ассемблере. Я делал некоторые программы, чтобы понять, как работают ascii, hex, бинарные и системные вызовы, но на самом деле я столкнулся с этой проблемой: например, когда я вводил 11 (1 + 1), б результат а не 2. почему?

SECTION .bss:
    Num1: db 1
        Num2: db 1
    Ris db 1

Read:   
    mov eax,3
    mov ebx,0
    mov ecx,Num1
    mov edx,1
    int 80h

    mov eax,3
    mov ebx,0
    mov ecx,Num2
    mov edx,1
    int 80h

    mov edx,[Num1] 
    mov ebx,[Num2]
    add ebx,edx
    mov [Num2],ebx

Write:
    mov eax,4
    mov ebx,1
    mov ecx,Num2
    mov edx,1
    int 80h

и почему, если я ввожу только число 1 и когда я пытаюсь суммировать его таким образом, результат верен? например, когда я ввожу 1 (1 + 3), 4 - это результат, а не d (как это было в первом случае). Почему?

SECTION .bss    
    Num1: db 1
    Num2: db 1
    Ris db 1

    ;inpb: resb 1
SECTION .data

SECTION .text 
    global main

Read:   
    mov eax,3
    mov ebx,0
    mov ecx,Num1
    mov edx,1
    int 80h

    ;  mov eax,3
    ;  mov ebx,0
    ;  mov ecx,Num2
    ;  mov edx,1
    ;  int 80h

    mov edx,[Num1] 
    mov ebx,3 ;rather than Num2 i put 3 

    add ebx,edx ;sum beetwen Num 1 and 3 
    mov [Num2],ebx


Write:
    mov eax,4
    mov ebx,1
    mov ecx,Num2
    mov edx,1
    int 80h
...