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

Reply via email to