Обратный печать массива в программировании сборки

Вопрос:

Мне нужно отменить печать строкового массива на языке ассемблера. Следующий мой код.

proc reverseAr
mov cl,count
mov si,offset Ar
mov si,3
write2:

mov dl,Ar[si]
mov ah,02h
int 21h
dec si
loop write2
ret
endp

Но это не дает ответа. Может ли кто-нибудь сказать мне, что такое точное значение si? Разве это не индекс позиции массива?

Лучший ответ:
proc reverseArray
    mov cl,count
    dec cl
    dec si
    printRevArr:
        mov dl,arr[si]
        add dl,48
        mov ah,02h
        int 21h

        dec si

    loop printRevArr

    ret
endp

Не используйте mov si,offset Ar Он сбросит индексы массива.

Ответ №1

si означает регистр индекса источника. Его можно использовать как указатель. это синтаксис регистра Offset будет:

SI Исходный индекс: общая адресация, смещение источника в строках ops

Оцените статью
TechArks.Ru
Добавить комментарий