News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

CALL instruction with opcode 9Ah

Started by habran, April 23, 2019, 11:08:40 PM

Previous topic - Next topic

hutch--

It would seem to me that the problem is finding a use for such a mnemonic. For assemblers that address a wider range of x86 host platforms, it may be useful but it has long been the case that Intel have stray mnemonics that change from one chip family to another for undisclosed reasons so there may not be any gain in adding the mnemonic to a working assembler.

For test purposes most macro assemblers should be able to code the mnemonic and see if it can be used for anything but in a world that lives between win32 and the coming win64, this may be a task that simply wastes time.

habran

Thanks LiaoMi
I succeeded to assemble it, however linking it is another thing

_main   PROC NEAR
        push    ebp                                     ; 0000 _ 55
        mov     ebp, esp                                ; 0001 _ 8B. EC
        add     esp, -8                                 ; 0003 _ 83. C4, F8
        push    -11                                     ; 0006 _ 6A, F5
        call    _GetStdHandle@4                         ; 0008 _ E8, 00000000(rel)
        mov     dword ptr [ebp-8H], eax                 ; 000D _ 89. 45, F8
        push    0                                       ; 0010 _ 6A, 00
        lea     eax, ptr [ebp-4H]                       ; 0012 _ 8D. 45, FC
        push    eax                                     ; 0015 _ 50
        push    17                                      ; 0016 _ 6A, 11
        push    offset FLAT:?_009                       ; 0018 _ 68, 00000000(segrel)
        push    dword ptr [ebp-8H]                      ; 001D _ FF. 75, F8
        call    _WriteConsoleA@20                       ; 0020 _ E8, 00000000(rel)
        int 3    ; breakpoint or filler                 ; 0025 _ CC
        call    far ptr FLAT:?_002                      ; 0026 _ 9A, 000002A4 0000(far)
        call    ?_004                                   ; 002D _ E8, 3FD65AD9


@hutch,

we are working on new codegen.c and we don't want to make it worse but better ;)
so, we needed testing peace for that instruction, which as we can see no one used for long, long, long time

Thanks all of you
Cod-Father

aw27

Quote
linking it is another thing
You need the Segmented Executable Linker, it is called link16.exe (or I renamed it to link16.exe ).

nidud

#18
deleted

habran

Cod-Father

johnsa

The only time I ever used these specific opcode forms was when writing OS code, DOS extenders etc. They were necessary to force a cache-flush and load a new CS selector. Even then with tasm/dos I think used to manually code in the db 0eah, dd xxx, dw 8 .. and patch it.