Помощь - Поиск - Пользователи - Календарь
Полная версия: Ret
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
suriv

Begin:
mov ah,10h
int 16h
cmp al,'y'
jz Sym
NON:
mov ah,9
mov dx,......
int 21h
int 20h
Sym:
-//-//-//
-//-/--/
jmp NON


а если вместо jmp будет ret ? это будет одно и тоже ?
если нет тогда что ? а видел прогу где в конце метки было RET что это означает.. (обычно его пишут в конце процедуры чтоб возвратиться на адрес откуда пришли

Begin:
mov ah,10h
int 16h
cmp al,'y'
jz Sym
mov ah,9
mov dx,......
int 21h
int 20h
Sym:
-//-//-//
-//-/--/
ret
ret
volvo
To: suriv, сам же и ответил на свой вопрос:
Цитата
обычно его пишут в конце процедуры чтоб возвратиться на адрес откуда пришли

только не на адрес, "откуда пришли", а туда, откуда процедура/функция была вызвана (с помощью CALL), но никак не внутри процедуры...
Shadow
retвозврат ближний\дальний из процедуры
работа команды зависит от типа процедуры
команда последовательно последовательно востанавливает из стека
ip cs для процедур дальнего типа или ближнего просто ip
----------
так вот в стек ты сам можешь положить что нибудь smile.gif поэкперементируй
и посмотри в отладчике
----------
формат COM
программа зациклится
code segment
assume cs:code,ds:code,ss:code
org 100h
start:
mov ax,100h
push ax
ret
code ends
end start
suriv
т.е RET это что-то типа: прогрмма достает из стека адрес и переходит на него..

а если в стеке ничего нету то в конце проги можно вместо INT20h поставить RET и программа тоже завершиться.. (говорят лучше так делать (ну с помощью RET))
Shadow
ну дык поэксперементируй и смотри в отладчике
можно использовать маш-ный код
0c3h - близкий
0cbh - дальний
т.е. прямо в код вставить
db 0c3h
; или
db 0cbh
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.