Сегментация в МАСМ
.model small
.data
message db 'Bla-bla-bla! $'
.code
start:
mov ax,@data
mov ds,ax
mov ah,9
mov dx, offset message
int 21h
mov ax,4c00h
int 21h
end start
И никак не могу понять что здесь может быть не правильно! Я где-то читал, что в masm есть отличия от tasm... Вобщем прошу всех кто знает в чем дело отозваться и помочь! Заранее благодарен.
.stack 200h
...
lea dx, message
разве что может
.model flat,stdcall
???
и ещё неплохо перед end start поставить ret
mov ax,@data
ret перед концом ставить бессмысленно, т.к. перед ним идет завершение программы с помощью прерываний
Ассемблер при создании .obj файла выдаёт следующее:
C:\my.asm(6): error A2006: undefined symbol: DGROUP
C:\my.asm(13): warning A4023: with/coff switch, leading underscore required for start address: srart
Может быть это как-то проясняет ситуацию. Просто я этого не понимаю, т.е. не понимаю почему это происходит.
Необходимо ключик "/omf" добавить компилятору и линковать DOS'овым линкером, иначе обломится на этапе линковки.
PS: Соурс изначально верный.
А почему masm для этого не подходит? И вот ещё вопрос тут возникает. Я скачат tasm5plus, там файл tasm32.exe-я так понимаю он только с 32 разрядными прогами может работать. А где можно найти tasm для 16-разрядных прог?
А кто сказал что MASM не подходит?...
Цитата: Shtirlitz
А где можно найти tasm для 16-разрядных прог?
там же!
в папке BIN есть файлы tlink и tasm они для 16 битных прог, а файлы tlink32 и tasm32 для 32 битных прог.
А вот и нет в tasm5plus tasm.exe и tlink.exe. В tasm5 Таковые имеются, а вот в tasm5plus-нет. Может быть они конечно по другому называются там...
А обычный тасм скачать траффик не позволяет?