Изменение кода сборки, я мог бы использовать некоторую помощь - PullRequest
0 голосов
/ 27 января 2019

Мне нужна помощь, мне нужно изменить программу для отображения ASCII 'F' в виде суммы массива.

Я не уверен, как это сделать, но попытался и потерпел неудачу.Буду признателен за любую помощь.

section .text
    global _start ;must be declared for linker (ld)
_start: 
    mov eax,3    ; Number bytes to be summed 
    mov ebx,0    ; ebx will store the sum
    mov ecx, x   ; ecx will point to the current element to be summed
top: 
    add ebx, [ecx]
    add ecx, 1      ; Move pointer to next element
    dec eax         ; Decrement counter
    jnz top         ; If counter not 0, then loop again
done: 
    add ebx, '0'    ; INSTRUCTOR’S QUESTION: Why are we doing this?
    mov [sum], ebx  ; Done, store result in "sum"
display:
    mov edx, 1      ; Message length
    mov ecx, sum    ; Message to write
    mov ebx, 1      ; File descriptor (stdout)
    mov eax, 4      ; System call number (sys_write)
    int 0x80        ; Call Linux kernel
    mov eax, 1      ; System call number (sys_exit)
    int 0x80        ; Call Linux kernel
section .data
    global x
    x: db 2
       db 4
       db 3
    sum: 
       db 0

Пожалуйста, помогите мне с этим.

...