Люди добрые! Подскажите новичку зеленому пожалуйста! Объясните по человечески что означает строка: org 0700h
Ну это я понимаю... Ну а что происходит? если я до начаа программы пишу org 0700h как это влияет на программу, на переменные объявленные? Вся адресация программы будет происходить начиная с 0700h ?
Код (Text): mov ax, [var0] xor ax, ax ret var0 dw 0 HEX: A1 06 00 31 C0 C3 00 00 Код (Text): org 0x700 mov ax, [var0] xor ax, ax ret var0 dw 0 HEX: A1 06 07 31 C0 C3 00 00 Директива org автоматически смещает адреса меток. COM фаил загружается с адреса равного 100h, интересно если не использовать org, то к чему приведет обращение к метке ближе 100h адреса?
Ну вообще это значит человек Блюза а не голубой мужчина) Ну а насчет директивы что значит смещает адреса меток. то есть как бы смещение считается теперь от адреса заданного в орге?
BluesMan Да, с английским у меня плоховато И вообщем это была шутка не как бы, а так оно и есть, посмотрите чем отличается два примера приведенных мной. Т. е. в ассемблере чаще мы расставляем метки, дабы легко вычислить адрес, и директива лишь помогает нам в этом. Так как ни какой информации в исполняемом файле (COM) нет кроме чистых бинарных инструкций и данных то DOS отображает такой файл в память сразу за блоком PSP (чей размер 100h). И ответом на мой вопрос, получится что обращение произойдет именно к PSP блоку.
Ищу микроскопические примеры по fasm, типа чтоб сразу результат... по каждой MFC/API примерчеги, то-есть вызвал то-сё и сразу в голове ясность наступает.... Ато пока разберёшся с функциональным приложением, забудешь с чего начинал... Вот beer мне нарвиться, но всё другое в дистрибутиве, не то чтоб сложно, но всё более далёко от окон и юзер мод win32. =) explorer/cmd.exe/*.cpl, cd-rom вот что интересует! и придумывание всяких консольных утилит по cmd.exe