|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Янв 9, 2003 18:18:13 Привет, это снова я кумарю ... :| Обьясните мне, пожалуйста, что означают директивы .Radix 16 .StartUp и почему здесь выход в дос осуществляется ret-ом, а не mov ax, 4c00h int 21h а то в книжке вроде нет ... |
|
|
Дата: Янв 9, 2003 23:39:14 Про StartUp не знаю :) А вот radix 16 - это вроде ты вначале прописываешь,чтобы потом каждый раз к шест.числу не добавлять "h". |
|
|
Дата: Янв 10, 2003 06:39:30 Godness Директива .Startup разворачивается в зависимости от модели памяти. Скомпилируйте листинг и посмотрите. почему здесь выход в дос осуществляется ret-мо Где это здесь? |
|
|
Дата: Янв 10, 2003 13:49:29 To P2M ... вот - .286 .model tiny .Code .Radix 16 .Startup ret END ... ?! To Я ... хм..м ... не поняллл :-/ ?! неужели надо было городить целую директиву ради того, что бы только не ставить "h" ... а, если десятичное число ?! ... |
|
|
Дата: Янв 10, 2003 22:19:04 хз. Что знал,то сказал :) |
|
|
Дата: Янв 11, 2003 17:38:40 Вобщем Radix - это директива для АСма, что бы он знал какие числа Вы используете в программе по умолчанию (т.е. без добавления приставок) Все другие числа необходимо писать с приставками. Если Вы написали Radix 16 то десятичные числа надо писать с приставкой, и на оборот... С Уважением, Игорь |
|
|
Дата: Янв 12, 2003 01:21:11 А ret потому что тебя вынесет в PSP а там int20h. Кстати он же вызывается и при mov ax, 4c00h int 21h |
|
|
Дата: Янв 13, 2003 20:37:41 Вроде понял, :| - спасибо ! ... это, ... дык ... дык ... дык ... ... спасибо большое, блин ... ... спасибо блин, - большое ... ... блин, - большое спасибо ... Хм..м ... ... большое спасибо, - блин ... :) |
|
|
Дата: Фев 15, 2003 02:29:05 ret для выхода в ДОС корректно работает только в com-файлах. она передает управление на нулевой адрес сегмента (на первый байт PSP), а там код команды int 20h. |
|
|
Дата: Фев 15, 2003 04:34:52 Аноним Фев 15, 2003 02:29:05 корректно работает только в com-файлах Потому что DOS при запуске com-программы настраивает SS указывает на PSP, SP указывает на последнее слово в сегменте PSP, а DOS устанавливает его в ноль. Поэтому получается, что ret устанавливает в IP ноль, предполагается что в момент ret CS == SS указывают на PSP. Если в exe-программе поместить в стек PSP:0h, то и в ней можно воспользоваться retf'ом, например: [code] .model small .stack 100h .code start: push es xor ax,ax push ax retf end start [/code] |
|
|
Дата: Фев 15, 2003 04:35:44 · Поправил: P2M |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.081 |