Re: Помогите с программированием на assembler #2
Posted: Sun Nov 22, 2009 4:33 am
Прошу прощения, ошибся. Сейчас посмотрел под отладчиком, всё работает. Я вообще не пользуюсь такой функцией, но сама функция интересная, правда несколько громоздкая, примерно на 10 байт больше команд "CALL" "RET", скорость тоже сомнительна. Кстати надо было написать что-то вроде "JMP exit" после метки "return:", а то получается безканечный цикл и всё виснет.
Примерно так.
Примерно так.
Code: Select all
mov al,255 ; включаем все биты в al
shl ax,8 ; перемещаем значение в ah
mov al,255 ; включаем все биты в al
and ax,return ; в ax адрес возврата
jmp subr ; прыгаем на нашу подпрограмму
return: ; это куда мы вернемся
;любая последовательность команд
jmp exit ; прыжок на выход
subr: ; начала подпрограммы
; тут может располагаться любая последовательность команд, которая не приведет к изменению регистра ax
jmp ax ; вернемся на адрес который у нас в ax
exit: ; выход