Интерпретация кода ASCII (сборка) - PullRequest
0 голосов
/ 13 апреля 2011

Прежде всего, спасибо за всю помощь.

Полный код можно найти здесь

У меня проблемы с пониманием этих строк.Я написал несколько комментариев ...

Строка, например, mov es: [si + 6], al означает перемещение данных в al на адрес памяти, отмеченный si + 6 (я думаю, что это будетрасчет смещения).

Тогда что же такое add si, 40 в цикле?

Любая помощь значит для меня все!Спасибо.

L0_95:         ; this segment prints ASCII code 0 - 95
mov si,6       ; refers to the string we declared at the beginning
mov cx,4       ; I think this is the height?

C1A:
; this loop adds the name of the column
mov al,string[0]
mov es:[si],al
mov al,string[2]
mov es:[si+6],al
mov al,string[4]
mov es:[si+24],al
mov al,string[6]
mov es:[si+28],al
add si,40           ;;;; what is this line?
loop C1A

mov si,122          ;;;; and these three lines?
mov bx,0
mov cx,4
C1B:push cx  

mov cx,24
add si,40
C1C:push cx
call DEC_CONVERT
add si,2
call HEX_CONVERT
add si,2
call BIN_CONVERT
add si,2
call CHAR_CONVERT
inc bx
add si,126
pop cx
loop C1C
pop cx
sub si,3840
loop C1B

ret

L96_191:

1 Ответ

2 голосов
/ 13 апреля 2011

add si увеличивает регистр si на 40.
mov si,122 устанавливает регистр si на 122, вероятно, адрес некоторых данных. Остальные две инструкции теперь должны быть понятны.

...