CMP byte ptr vs:[var], 0x18
--- Freelance coder 916-277-5654 @ axiom3...@proton.me On Sat, May 31, 2025, 10:56 hms--- via Freedos-user < freedos-user@lists.sourceforge.net> wrote: > Hi there > Not a specific FreeDos question, but related. I recently disassembled a DOS > .COM utility using "IDA Free", to see if I could make some minor mods. > I am brand new to 8086 assembly language and looking for an answer. > In the example test code below, I want to replace the instruction "cmp > byte_369, 18h" > with "cmp byte ptr [addr], 18h" or similar. I get an error message of > "Illegal immediate". > Do I need to use an intermediate instruction to achieve this? > The assembler is Borland's TASM. > Any help appreciated. > Thanks, John > > ; ------------------------------------------ > > SOURCE: > > .386 > .model tiny > > addr equ 369h > > seg000 segment byte public 'CODE' use16 > assume cs:seg000 > org 100h > assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing > public start > > start proc near > jmp here > > org 369h > byte_369 db 18h > > org 1234h > here: > cmp byte ptr [addr], 18h > cmp byte_369, 18h > > start endp > seg000 ends > end start > ; ------------------------------------------ > > EDITED ASSEMBLER OUTPUT: (for brevity) > > 8 org 100h > 13 0100 E9 1131 jmp here > 14 > 15 org 369h > 17 0369 18 byte_369 db 18h > 18 > 19 org 1234h > 21 1234 here: > > 22 1234 80 3E 0369 18 cmp byte ptr [addr],18h > **Error** test.ASM(22) Illegal immediate > > 23 1239 80 3E 0369r 18 cmp byte_369,18h > > ; end doc > > > > _______________________________________________ > Freedos-user mailing list > Freedos-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/freedos-user >
_______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user