Miten tuolla MASM32 paketilla saa tehtyä DOS ohjelmia?
Kävin hakemassa http://win32asm.cjb.net sivulta DOS ohjelmille sopivan linkkerin, mutta ei auttanut.
Onko ohjelman "pohja" jotenkin erilainen? Ei ainakaan TASM:SSA käyttämääni runko toimi.
Minkähänlaista roskaa olet nyt assembloimassa ja linkkaamassa? Pistä esille niin katsotaan.
MASM vaatii muistaakseni hieman erilaiset aloitukset ohjelmalle.
Joo eli edes hello world tapaista ohjelmaa en saanut kunnolla toimimaan. Ilmoittaa kohdasta "mov dx, offset Text", että "instruction operands must be the same size".
Assembloimisen ja linkkaamisen tein seuraavasti(väärät parametrit?)
ml /Cp /c joo.asm link joo.obj, poo.exe
;joo.asm .386 .MODEL SMALL .STACK 1024 .DATA Text db "hello",0 .CODE start: mov ax, @data mov ds, ax mov ah, 09h mov dx, offset Text int 21h mov ah, 4ch int 21h end start
Lueskelin myös vähän tuota Art of Assembly opasta. Onko kukaan koskaan lukenut sitä kokonaan? Kauhean pitkä ainakin PDF-versiona ;)
Vaihda:
.386 .MODEL SMALL .STACK 1024
->
.MODEL SMALL .STACK 1024 .386
Tuon /Cp switchin voi assembloimisvaiheessa jättää pois jos iskee koodiin rivin: "option casemap :none".
Nyt en jaksa muistaa olisiko se DOS-linkkeri ottanut jotenkin tavallisuudesta poikkeavasti nuo parametrit.
Aihe on jo aika vanha, joten et voi enää vastata siihen.