я действительно не понимаю, почему этот простой код отлично работает в первой попытке, но когда положить его в процедуре ошибки показывает:Нелегальная инструкция на ассемблере
Процессор NTVDM обнаружил недопустимую инструкцию CS: db22 IP : 4de4 ОП: f0 FF FF FF FF
Первый сегмент кода работает просто отлично:
.model small
.stack 100h
.code
start:
mov ax,@data
mov ds,ax
mov es,ax
MOV AH,02H ;sets cursor up
MOV BH,00H
MOV DH,02
MOV DL,00
INT 10H
EXIT:
MOV AH,4CH
INT 21H
END
Однако это приводит к ошибке:
.model small
.stack 100h
.code
start:
mov ax,@data
mov ds,ax
mov es,ax
call set_cursor
PROC set_cursor near
MOV AH,02H ;sets cursor up
MOV BH,00H
MOV DH,02
MOV DL,00
INT 10H
RET
set_cursor ENDP
EXIT:
MOV AH,4CH
INT 21H
END
Примечание: ничего не происходит с конфигурацией Windows. Я пробовал много кодов образца, которые работают нормально
Благодарности
@Natasha, я бы уточнил название вопроса, чтобы быть немного более наглядным, вы получите лучший ответ :) – James
@Natasha: если ответ решает вашу проблему, вы можете его принять. Не нужно редактировать вопрос. – SilentGhost
ahh my bad, Спасибо в любом случае – Natasha