Это пример кода на языке ассемблера для 8086 для печати строки в обратном порядке.
.model small
.STACK 100H
.DATA
MSG DB 'HELLO!$'
.CODE
MOV CL,0
AGAIN:
MOV DL,DS:[SI]
; MOV AH,2
; INT 21H
INC CL
INC SI
CMP DL,'$'
JNE AGAIN
DEC SI
DEC CL
REV:
DEC SI
MOV DL,DS:[SI]
MOV AH,2
INT 21H
DEC CL
CMP CL,0
JNE REV
.EXIT
END
Это вывод! ОЛЛЕХ. Но если я напишу
MOV AH,2
INT 21H
на уровне СНОВА ниже MOV DL, DS: [SI]. Я думаю, что ответ должен быть HELLO !! OLLEH, но он показывает символ '=' и предыдущий вывод. Почему это происходит?
SI
. - person Cody Gray   schedule 28.12.2016int 21h
делает то, что должен, выводитDL
char ... не то, что вы ожидали. - person Ped7g   schedule 28.12.2016