Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема при сборке программы

9.4K
13 марта 2006 года
ary
5 / / 10.03.2005
Проблема состоит в следующем:
Имеются два файла progr.asm и proclib.asm:
Код:
;progr.asm
public string;
extern print_msg;
.model small
.data
...
string db 'message $';
.code
start:
    mov ax, @data;
    mov ds, ax;
    ....
    call print_msg;
end start;

 
Код:
; proclib.asm
.model small
.code
extern string;
.....
print_msg proc near public
    mov ah, 9;
    mov dx, offset string;
    int 21h;
print_msg endp

затем все это собирается с помощью MASM 6.14
ml.exe /Zi /Fl /Fm progr.asm proclib.asm
при выполнении получившегося исполняемого файла
строка не выводиться, а в место нее выводяться случайные символы
то есть mov dx, offset string; кладет в dx неправильное смещение
у меня существуют подозрение что эта строка адресуется относительно другого сегментного адреса
для более полной информации приведу фрагмент *.map файла:

Start Stop Length Name Class
00000H 00312H 00313H _TEXT CODE
00314H 00515H 00202H _DATA DATA
00520H 00775H 00256H STACK STACK

Origin Group
0031:0 DGROUP

Address Publics by Name

0000:02AB proc1
.......
0000:02E7 print_msg
0031:0088 string
.......
Может кто-нибуть знает как заставить ЭТО правильно работать...?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог