Mnemonique asm

Description

compilation sous tasm, le code date de 95 donc il correspond au tableau mnemonique d'époque.

Source / Exemple :


Comment#
     Mne.asm
     Tableau des Mnemoniques et de l'encodage
Comment#
              _Imm                Equ 000
              _dwmodregmrdep      Equ 001
              _RegImm16           Equ 002
              _UseReg             Equ 003
              _ImmHex08           Equ 004
              _ModSregRmDep_1     Equ 005
              _MemAccu            Equ 006
              _AccuMem            Equ 007
              _CallImm            Equ 008
              _MkeCond            Equ 009
              _SetOpeSize         Equ 010
              _SetAdrSize         Equ 011
              _RegImm8            Equ 012
              _RegReg8            Equ 013
              _AccuImm            Equ 014
              _ImmHex16           Equ 015

              _GroupeE            Equ 016
              _TestN_NE           Equ 017
              _OpListe2           Equ 018
              _TestBWD            Equ 019
              _GroupeA            Equ 020
              _GroupeB            Equ 021
              _swmod010mrdepimm   Equ 022
              _Copro              Equ 023
              _GroupeC            Equ 024
              _GroupeD            Equ 025

              _Aaa         Equ 000
              _Aad         Equ 001
              _Aam         Equ 002
              _Aas         Equ 003
              _Adc         Equ 004
              _Add         Equ 005
              _And         Equ 006
              _Arpl        Equ 007
              _Bound       Equ 008
              _Bsf         Equ 009
              _Bsr         Equ 010
              _Bswap       Equ 011
              _Bt          Equ 012
              _Btc         Equ 013
              _Btr         Equ 014
              _Bts         Equ 015
              _Call        Equ 016
              _Cbw         Equ 017
              _Cqd         Equ 018
              _Clc         Equ 019
              _Cld         Equ 020
              _Cli         Equ 021
              _Clts        Equ 022
              _Cmc         Equ 023
              _Cmp         Equ 024
              _Cmps        Equ 025
              _CmpXchg     Equ 026
              _Cts         Equ 027
              _Cwd         Equ 028
              _Cwde        Equ 029
              _Daa         Equ 030
              _Das         Equ 031
              _Dec         Equ 032
              _Div         Equ 033
              _Enter       Equ 034
              _Esc         Equ 035
              _Hlt         Equ 036
              _Ibts        Equ 037
              _Idiv        Equ 038
              _Iimul       Equ 039
              _Imul        Equ 040
              _In          Equ 041
              _Inc         Equ 042
              _Ins         Equ 043
              _Int         Equ 044
              _Into        Equ 045
              _Invd        Equ 046
              _Invlpg      Equ 047
              _Iret        Equ 048
              _IretD       Equ 049
              _Jcond       Equ 050
              _Jcxz        Equ 051
              _Jecxz       Equ 052
              _Jmp         Equ 053
              _Lahf        Equ 054
              _Lar         Equ 055
              _Lds         Equ 056
              _Lea         Equ 057
              _Leave       Equ 058
              _Les         Equ 059
              _Lfs         Equ 060
              _Lgdt        Equ 061
              _Lgs         Equ 062
              _Lidt        Equ 063
              _Lldt        Equ 064
              _Lmsw        Equ 065
              _LoadAll     Equ 066
              _Lock        Equ 067
              _Lod         Equ 068
              _Loop        Equ 069
              _LoopE       Equ 070
              _LoopZ       Equ 071
              _LoopNe      Equ 072
              _LoopNz      Equ 073
              _Lsl         Equ 074
              _Lss         Equ 075
              _Ltr         Equ 076
              _Mov         Equ 077
              _Movs        Equ 078
              _MovSx       Equ 079
              _MovZx       Equ 080
              _Mul         Equ 081
              _Neg         Equ 082
              _Nop         Equ 083
              _Not         Equ 084
              _Or          Equ 085
              _Out         Equ 086
              _OutS        Equ 087
              _Pop         Equ 088
              _PopA        Equ 089
              _PopAd       Equ 090
              _PopF        Equ 091
              _PopFd       Equ 092
              _Push        Equ 093
              _PushA       Equ 094
              _PushF       Equ 095
              _PushFd      Equ 096
              _Rcl         Equ 097
              _Rcr         Equ 098
              _Rep         Equ 099
              _RepC        Equ 100
              _RepNc       Equ 101
              _RepE        Equ 102
              _RepZ        Equ 103
              _RepNe       Equ 104
              _RepNz       Equ 105
              _Ret         Equ 106
              _RetF        Equ 107
              _RetN        Equ 108
              _Rol         Equ 109
              _Ror         Equ 110
              _Sahf        Equ 111
              _Sal         Equ 112
              _Sar         Equ 113
              _Sbb         Equ 114
              _Sca         Equ 115
              _Seg         Equ 116
              _SetCond     Equ 117
              _SetAlc      Equ 118
              _Sgdt        Equ 119
              _Shl         Equ 120
              _Shld        Equ 121
              _Shr         Equ 122
              _Shrd        Equ 123
              _Sidt        Equ 124
              _Sldt        Equ 125
              _Smsw        Equ 126
              _Stc         Equ 127
              _Std         Equ 128
              _Sti         Equ 129
              _Sto         Equ 130
              _Str         Equ 131
              _Sub         Equ 132
              _Test        Equ 133
              _Verr        Equ 134
              _Verw        Equ 135
              _Wait        Equ 136
              _WbInvd      Equ 137
              _Xadd        Equ 138
              _Xbts        Equ 139
              _Xchg        Equ 140
              _Xlat        Equ 141
              _XlatB       Equ 142
              _Xor         Equ 143
              _Al          Equ 144
              _Cl          Equ 145
              _Dl          Equ 146
              _Bl          Equ 147
              _Ah          Equ 148
              _Ch          Equ 149
              _Dh          Equ 150
              _Bh          Equ 151
              _Ax          Equ 152
              _Cx          Equ 153
              _Dx          Equ 154
              _Bx          Equ 155
              _Sp          Equ 156
              _Bp          Equ 157
              _Si          Equ 158
              _Di          Equ 159
              _Eax         Equ 160
              _Ecx         Equ 161
              _Edx         Equ 162
              _Ebx         Equ 163
              _Esp         Equ 164
              _Ebp         Equ 165
              _Esi         Equ 166
              _Edi         Equ 167
              _Cs          Equ 168
              _Ds          Equ 169
              _Es          Equ 170
              _Fs          Equ 171
              _Gs          Equ 172
              _Ss          Equ 173
              _DsBxSi      Equ 174
              _DsBxDi      Equ 175
              _SsBpSi      Equ 176
              _SsBpDi      Equ 177
              _DsSi        Equ 178
              _DsDi        Equ 179
              _Dsdep16     Equ 180
              _DsBx        Equ 181
              _DsBxSiDep8  Equ 182
              _DsBxDiDep8  Equ 183
              _SsBpSiDep8  Equ 184
              _SsBpDiDep8  Equ 185
              _DsSiDep8    Equ 186
              _DsDiDep8    Equ 187
              _SsBpDep8    Equ 188
              _DsBxDep8    Equ 189
              _DsBxSiDep16 Equ 190
              _DsBxDiDep16 Equ 191
              _SsBpSiDep16 Equ 192
              _SsBpDiDep16 Equ 193
              _DsSiDep16   Equ 194
              _DsDiDep16   Equ 195
              _SsBpDep16   Equ 196
              _DsBxDep16   Equ 197
              _DsEaxDep8   Equ 198
              _DsEcxDep8   Equ 199
              _DsEdxDep8   Equ 200
              _DsEbxDep8   Equ 201
              _SibDep8     Equ 202
              _DsEbpDep8   Equ 203
              _DsEsiDep8   Equ 204
              _DsEdiDep8   Equ 205
              _DsEaxDep32  Equ 206
              _DsEcxDep32  Equ 207
              _DsEdxDep32  Equ 208
              _DsEbxDep32  Equ 209
              _SibDep32    Equ 210
              _DsEbpDep32  Equ 211
              _DsEsiDep32  Equ 212
              _DsEdiDep32  Equ 213
              _DsEax       Equ 214
              _DsEcx       Equ 215
              _DsEdx       Equ 216
              _DsEbx       Equ 217
              _Sib         Equ 218
              _DsOfs32     Equ 219
              _DsEsi       Equ 220
              _DsEdi       Equ 221
              _PushEs      Equ 222
              _PopEs       Equ 223
              _PushSs      Equ 224
              _PopSs       Equ 225
              _None        Equ 226
              _SegEs       Equ 227
              _SegSs       Equ 228
              _PushDs      Equ 229
              _PopDs       Equ 230
              _SegCs       Equ 231
              _SegDs       Equ 232
              _PushCs      Equ 233
              _SegFs       Equ 234
              _SegGs       Equ 235
              _CallF       Equ 236
              _Int3        Equ 237
              _CsImm16     Equ 238

              _JcondFirst  Equ 255
Jumps
.386P
.387
Locals @@
StartC Segment Para Public Use16 'CODE'
Assume CS:StartC,DS:StartC,SS:StartC
Org 100h
StartHere:
Jmp Demarre
; 0 remplace un Mot  8b
; 1 remplace un Mot 16b
; 2 remplace un Mot 32b
           ; 16 Charactere d'affichage
           ;   1234567890123456
MneDisplay DB 'Aaa             '  ;     _Aaa         Equ 000
           DB 'Aad             '  ;     _Aad         Equ 001
           DB 'Aam             '  ;     _Aam         Equ 002
           DB 'Aas             '  ;     _Aas         Equ 003
           DB 'Adc             '  ;     _Adc         Equ 004
           DB 'Add             '  ;     _Add         Equ 005
           DB 'And             '  ;     _And         Equ 006
           DB 'Arpl            '  ;     _Arpl        Equ 007
           DB 'Bound           '  ;     _Bound       Equ 008
           DB 'Bsf             '  ;     _Bsf         Equ 009
           DB 'Bsr             '  ;     _Bsr         Equ 010
           DB 'Bswap           '  ;     _Bswap       Equ 011
           DB 'Bt              '  ;     _Bt          Equ 012
           DB 'Btc             '  ;     _Btc         Equ 013
           DB 'Btr             '  ;     _Btr         Equ 014
           DB 'Bts             '  ;     _Bts         Equ 015
           DB 'Call            '  ;     _Call        Equ 016
           DB 'Cbw             '  ;     _Cbw         Equ 017
           DB 'Cqd             '  ;     _Cqd         Equ 018
           DB 'Clc             '  ;     _Clc         Equ 019
           DB 'Cld             '  ;     _Cld         Equ 020
           DB 'Cli             '  ;     _Cli         Equ 021
           DB 'Clts            '  ;     _Clts        Equ 022
           DB 'Cmc             '  ;     _Cmc         Equ 023
           DB 'Cmp             '  ;     _Cmp         Equ 024
           DB 'Cmps            '  ;     _Cmps        Equ 025
           DB 'CmpXchg         '  ;     _CmpXchg     Equ 026
           DB 'Cts             '  ;     _Cts         Equ 027
           DB 'Cwd             '  ;     _Cwd         Equ 028
           DB 'Cwde            '  ;     _Cwde        Equ 029
           DB 'Daa             '  ;     _Daa         Equ 030
           DB 'Das             '  ;     _Das         Equ 031
           DB 'Dec             '  ;     _Dec         Equ 032
           DB 'Div             '  ;     _Div         Equ 033
           DB 'Enter           '  ;     _Enter       Equ 034
           DB 'Esc             '  ;     _Esc         Equ 035
           DB 'Hlt             '  ;     _Hlt         Equ 036
           DB 'Ibts            '  ;     _Ibts        Equ 037
           DB 'Idiv            '  ;     _Idiv        Equ 038
           DB 'Iimul           '  ;     _Iimul       Equ 039
           DB 'Imul            '  ;     _Imul        Equ 040
           DB 'In              '  ;     _In          Equ 041
           DB 'Inc             '  ;     _Inc         Equ 042
           DB 'Ins             '  ;     _Ins         Equ 043
           DB 'Int             '  ;     _Int         Equ 044
           DB 'Into            '  ;     _Into        Equ 045
           DB 'Invd            '  ;     _Invd        Equ 046
           DB 'Invlpg          '  ;     _Invlpg      Equ 047
           DB 'Iret            '  ;     _Iret        Equ 048
           DB 'IretD           '  ;     _IretD       Equ 049
           DB 'J               '  ;     _Jcond       Equ 050
           DB 'Jcxz            '  ;     _Jcxz        Equ 051
           DB 'Jecxz           '  ;     _Jecxz       Equ 052
           DB 'Jmp             '  ;     _Jmp         Equ 053
           DB 'Lahf            '  ;     _Lahf        Equ 054
           DB 'Lar             '  ;     _Lar         Equ 055
           DB 'Lds             '  ;     _Lds         Equ 056
           DB 'Lea             '  ;     _Lea         Equ 057
           DB 'Leave           '  ;     _Leave       Equ 058
           DB 'Les             '  ;     _Les         Equ 059
           DB 'Lfs             '  ;     _Lfs         Equ 060
           DB 'Lgdt            '  ;     _Lgdt        Equ 061
           DB 'Lgs             '  ;     _Lgs         Equ 062
           DB 'Lidt            '  ;     _Lidt        Equ 063
           DB 'Lldt            '  ;     _Lldt        Equ 064
           DB 'Lmsw            '  ;     _Lmsw        Equ 065
           DB 'LoadAll         '  ;     _LoadAll     Equ 066
           DB 'Lock            '  ;     _Lock        Equ 067
           DB 'Lods            '  ;     _Lod         Equ 068
           DB 'Loop            '  ;     _Loop        Equ 069
           DB 'LoopE           '  ;     _LoopE       Equ 070
           DB 'LoopZ           '  ;     _LoopZ       Equ 071
           DB 'LoopNe          '  ;     _LoopNe      Equ 072
           DB 'LoopNz          '  ;     _LoopNz      Equ 073
           DB 'Lsl             '  ;     _Lsl         Equ 074
           DB 'Lss             '  ;     _Lss         Equ 075
           DB 'Ltr             '  ;     _Ltr         Equ 076
           DB 'Mov             '  ;     _Mov         Equ 077
           DB 'Movs            '  ;     _Movs        Equ 078
           DB 'MovSx           '  ;     _MovSx       Equ 079
           DB 'MovZx           '  ;     _MovZx       Equ 080
           DB 'Mul             '  ;     _Mul         Equ 081
           DB 'Neg             '  ;     _Neg         Equ 082
           DB 'Nop             '  ;     _Nop         Equ 083
           DB 'Not             '  ;     _Not         Equ 084
           DB 'Or              '  ;     _Or          Equ 085
           DB 'Out             '  ;     _Out         Equ 086
           DB 'OutS            '  ;     _OutS        Equ 087
           DB 'Pop             '  ;     _Pop         Equ 088
           DB 'PopA            '  ;     _PopA        Equ 089
           DB 'PopAd           '  ;     _PopAd       Equ 090
           DB 'PopF            '  ;     _PopF        Equ 091
           DB 'PopFd           '  ;     _PopFd       Equ 092
           DB 'Push            '  ;     _Push        Equ 093
           DB 'PushA           '  ;     _PushA       Equ 094
           DB 'PushF           '  ;     _PushF       Equ 095
           DB 'PushFd          '  ;     _PushFd      Equ 096
           DB 'Rcl             '  ;     _Rcl         Equ 097
           DB 'Rcr             '  ;     _Rcr         Equ 098
           DB 'Rep             '  ;     _Rep         Equ 099
           DB 'RepC            '  ;     _RepC        Equ 100
           DB 'RepNc           '  ;     _RepNc       Equ 101
           DB 'RepE            '  ;     _RepE        Equ 102
           DB 'RepZ            '  ;     _RepZ        Equ 103
           DB 'RepNe           '  ;     _RepNe       Equ 104
           DB 'RepNz           '  ;     _RepNz       Equ 105
           DB 'Ret             '  ;     _Ret         Equ 106
           DB 'RetF            '  ;     _RetF        Equ 107
           DB 'RetN            '  ;     _RetN        Equ 108
           DB 'Rol             '  ;     _Rol         Equ 109
           DB 'Ror             '  ;     _Ror         Equ 110
           DB 'Sahf            '  ;     _Sahf        Equ 111
           DB 'Sal             '  ;     _Sal         Equ 112
           DB 'Sar             '  ;     _Sar         Equ 113
           DB 'Sbb             '  ;     _Sbb         Equ 114
           DB 'Scas            '  ;     _Sca         Equ 115
           DB 'Seg             '  ;     _Seg         Equ 116
           DB 'SetCond         '  ;     _SetCond     Equ 117
           DB 'SetAlc          '  ;     _SetAlc      Equ 118
           DB 'Sgdt            '  ;     _Sgdt        Equ 119
           DB 'Shl             '  ;     _Shl         Equ 120
           DB 'Shld            '  ;     _Shld        Equ 121
           DB 'Shr             '  ;     _Shr         Equ 122
           DB 'Shrd            '  ;     _Shrd        Equ 123
           DB 'Sidt            '  ;     _Sidt        Equ 124
           DB 'Sldt            '  ;     _Sldt        Equ 125
           DB 'Smsw            '  ;     _Smsw        Equ 126
           DB 'Stc             '  ;     _Stc         Equ 127
           DB 'Std             '  ;     _Std         Equ 128
           DB 'Sti             '  ;     _Sti         Equ 129
           DB 'Stos            '  ;     _Sto         Equ 130
           DB 'Str             '  ;     _Str         Equ 131
           DB 'Sub             '  ;     _Sub         Equ 132
           DB 'Test            '  ;     _Test        Equ 133
           DB 'Verr            '  ;     _Verr        Equ 134
           DB 'Verw            '  ;     _Verw        Equ 135
           DB 'Wait            '  ;     _Wait        Equ 136
           DB 'WbInvd          '  ;     _WbInvd      Equ 137
           DB 'Xadd            '  ;     _Xadd        Equ 138
           DB 'Xbts            '  ;     _Xbts        Equ 139
           DB 'Xchg            '  ;     _Xchg        Equ 140
           DB 'Xlat            '  ;     _Xlat        Equ 141
           DB 'XlatB           '  ;     _XlatB       Equ 142
           DB 'Xor             '  ;     _Xor         Equ 143
           DB 'Al              '  ;     _Al          Equ 144
           DB 'Cl              '  ;     _Cl          Equ 145
           DB 'Dl              '  ;     _Dl          Equ 146
           DB 'Bl              '  ;     _Bl          Equ 147
           DB 'Ah              '  ;     _Ah          Equ 148
           DB 'Ch              '  ;     _Ch          Equ 149
           DB 'Dh              '  ;     _Dh          Equ 150
           DB 'Bh              '  ;     _Bh          Equ 151
           DB 'Ax              '  ;     _Ax          Equ 152
           DB 'Cx              '  ;     _Cx          Equ 153
           DB 'Dx              '  ;     _Dx          Equ 154
           DB 'Bx              '  ;     _Bx          Equ 155
           DB 'Sp              '  ;     _Sp          Equ 156
           DB 'Bp              '  ;     _Bp          Equ 157
           DB 'Si              '  ;     _Si          Equ 158
           DB 'Di              '  ;     _Di          Equ 159
           DB 'Eax             '  ;     _Eax         Equ 160
           DB 'Ecx             '  ;     _Ecx         Equ 161
           DB 'Edx             '  ;     _Edx         Equ 162
           DB 'Ebx             '  ;     _Ebx         Equ 163
           DB 'Esp             '  ;     _Esp         Equ 164
           DB 'Ebp             '  ;     _Ebp         Equ 165
           DB 'Esi             '  ;     _Esi         Equ 166
           DB 'Edi             '  ;     _Edi         Equ 167
           DB 'Cs              '  ;     _Cs          Equ 168
           DB 'Ds              '  ;     _Ds          Equ 169
           DB 'Es              '  ;     _Es          Equ 170
           DB 'Fs              '  ;     _Fs          Equ 171
           DB 'Gs              '  ;     _Gs          Equ 172
           DB 'Ss              '  ;     _Ss          Equ 173
           DB 'Ds:[Bx+Si]      '  ;     _DsBxSi      Equ 174
           DB 'Ds:[Bx+Di]      '  ;     _DsBxDi      Equ 175
           DB 'Ss:[Bp+Si]      '  ;     _SsBpSi      Equ 176
           DB 'Ss:[Bp+Di]      '  ;     _SsBpDi      Equ 177
           DB 'Ds:[Si]         '  ;     _DsSi        Equ 178
           DB 'Ds:[Di]         '  ;     _DsDi        Equ 179
           DB 'Ds:[1]          '  ;     _Dsdep16     Equ 180
           DB 'Ds:[Bx]         '  ;     _DsBx        Equ 181
           DB 'Ds:[Bx+Si+0]    '  ;     _DsBxSiDep8  Equ 182
           DB 'Ds:[Bx+Di+0]    '  ;     _DsBxDiDep8  Equ 183
           DB 'Ss:[Bp+Si+0]    '  ;     _SsBpSiDep8  Equ 184
           DB 'Ss:[Bp+Di+0]    '  ;     _SsBpDiDep8  Equ 185
           DB 'Ds:[Si+0]       '  ;     _DsSiDep8    Equ 186
           DB 'Ds:[Di+0]       '  ;     _DsDiDep8    Equ 187
           DB 'Ss:[Bp+0]       '  ;     _SsBpDep8    Equ 188
           DB 'Ds:[Bx+0]       '  ;     _DsBxDep8    Equ 189
           DB 'Ds:[Bx+Si+1]    '  ;     _DsBxSiDep16 Equ 190
           DB 'Ds:[Bx+Di+1]    '  ;     _DsBxDiDep16 Equ 191
           DB 'Ss:[Bp+Si+1]    '  ;     _SsBpSiDep16 Equ 192
           DB 'Ss:[Bp+Di+1]    '  ;     _SsBpDiDep16 Equ 193
           DB 'Ds:[Si+1]       '  ;     _DsSiDep16   Equ 194
           DB 'Ds:[Di+1]       '  ;     _DsDiDep16   Equ 195
           DB 'Ss:[Bp+1]       '  ;     _SsBpDep16   Equ 196
           DB 'Ds:[Bx+1]       '  ;     _DsBxDep16   Equ 197
           Db 'Ds:[Eax+0]      '  ;     _DsEaxDep8   Equ 198
           Db 'Ds:[Ecx+0]      '  ;     _DsEcxDep8   Equ 199
           Db 'Ds:[Edx+0]      '  ;     _DsEdxDep8   Equ 200
           Db 'Ds:[Ebx+0]      '  ;     _DsEbxDep8   Equ 201
           Db '[4+0]           '  ;     _SibDep8     Equ 202
           Db 'Ds:[Ebp+0]      '  ;     _DsEbpDep8   Equ 203
           Db 'Ds:[Esi+0]      '  ;     _DsEsiDep8   Equ 204
           Db 'Ds:[Edi+0]      '  ;     _DsEdiDep8   Equ 205
           Db 'Ds:[Eax+2]      '  ;     _DsEaxDep32  Equ 206
           Db 'Ds:[Ecx+2]      '  ;     _DsEcxDep32  Equ 207
           Db 'Ds:[Edx+2]      '  ;     _DsEdxDep32  Equ 208
           Db 'Ds:[Ebx+2]      '  ;     _DsEbxDep32  Equ 209
           Db '[4+2]           '  ;     _SibDep32    Equ 210
           Db 'Ds:[Ebp+2]      '  ;     _DsEbpDep32  Equ 211
           Db 'Ds:[Esi+2]      '  ;     _DsEsiDep32  Equ 212
           Db 'Ds:[Edi+2]      '  ;     _DsEdiDep32  Equ 213
           Db 'Ds:[Eax]        '  ;     _DsEax       Equ 214
           Db 'Ds:[Ecx]        '  ;     _DsEcx       Equ 215
           Db 'Ds:[Edx]        '  ;     _DsEdx       Equ 216
           Db 'Ds:[Ebx]        '  ;     _DsEbx       Equ 217
           Db '[4]             '  ;     _Sib         Equ 218
           Db 'Ds:[2]          '  ;     _DsOfs32     Equ 219
           Db 'Ds:[Esi]        '  ;     _DsEsi       Equ 220
           Db 'Ds:[Edi]        '  ;     _DsEdi       Equ 221
           Db 'Push_Es         '  ;     _PushEs      Equ 222
           Db 'Pop__Es         '  ;     _PopEs       Equ 223
           Db 'Push_Ss         '  ;     _PushSs      Equ 224
           Db 'Pop__Ss         '  ;     _PopSs       Equ 225
           Db '                '  ;     _None        Equ 226
           Db 'Seg__Es         '  ;     _SegEs       Equ 227
           Db 'Seg__Ss         '  ;     _SegSs       Equ 228
           Db 'Push_Ds         '  ;     _PushDs      Equ 229
           Db 'Pop__Ds         '  ;     _PopDs       Equ 230
           Db 'Seg__Cs         '  ;     _SegCs       Equ 231
           Db 'Seg__Ds         '  ;     _SegDs       Equ 232
           Db 'Push_Cs         '  ;     _PushCs      Equ 233
           Db 'Seg__Fs         '  ;     _SegFs       Equ 234
           Db 'Seg__Gs         '  ;     _SegGs       Equ 235
           DB 'Call_Far_Ptr    '  ;     _CallF       Equ 236
           DB 'Int___3         '  ;     _Int3        Equ 237
           DB 'Cs:[1]          '  ;     _CsImm16     Equ 238
           DB '                '  ;                  Equ 239
           DB '                '  ;                  Equ 240
           Db '                '  ;                  Equ 241
           Db '                '  ;                  Equ 242
           Db '                '  ;                  Equ 243
           Db '                '  ;                  Equ 244
           Db '                '  ;                  Equ 245
           DB '                '  ;                  Equ 246
           DB '                '  ;                  Equ 247
           DB '                '  ;                  Equ 248
           DB '                '  ;                  Equ 249
           DB '                '  ;                  Equ 250
           Db '                '  ;                  Equ 251
           Db '                '  ;                  Equ 252
           Db '                '  ;                  Equ 253
           Db '                '  ;                  Equ 254
           Db 'O               '  ;     _JcondFirst  Equ 255
           Db 'NO              '  ;     ; Table a Base 255
           Db 'C               '  ;     ; Table a Base 255
           Db 'NC              '  ;     ; Table a Base 255
           Db 'Z               '  ;     ; Table a Base 255
           Db 'NZ              '  ;     ; Table a Base 255
           Db 'NA              '  ;     ; Table a Base 255
           Db 'A               '  ;     ; Table a Base 255
           Db 'S               '  ;     ; Table a Base 255
           Db 'NS              '  ;     ; Table a Base 255
           Db 'P               '  ;     ; Table a Base 255
           Db 'NP              '  ;     ; Table a Base 255
           Db 'L               '  ;     ; Table a Base 255
           Db 'NL              '  ;     ; Table a Base 255
           Db 'LE              '  ;     ; Table a Base 255
           Db 'NLE             '  ;     ; Table a Base 255

Plug DB '0123456789ABCDEF'      ; Base d'affichage Hexa

ChampReg_Head          Dw  Offset ChampReg      ; W = 0, Ope = 0
                       Dw  Offset ChampReg1     ; W = 0, Ope = 1
                       Dw  Offset ChampReg      ; W = 1, Ope = 0
                       Dw  Offset ChampReg2     ; W = 1, Ope = 1

ChampReg  Db     _Al,_Cl,_Dl,_Bl,_Ah,_Ch,_Dh,_Bh

ChampReg1 Db     _Ax,_Cx,_Dx,_Bx,_Sp,_Bp,_Si,_Di

ChampReg2 Db     _Eax,_Ecx,_Edx,_Ebx,_Esp,_Ebp,_Esi,_Edi

Even
Champ16ModRm_Head Dw Offset Champ16ModRm00  ; w=0,mod=00 rm
                  Dw Offset Champ16ModRm01  ; w=0,mod=01 rm
                  Dw Offset Champ16ModRm10  ; w=0,mod=10 rm
                  Dw Offset Champ16ModRm110 ; w=0,mod=11 rm
                  Dw Offset Champ16ModRm00  ; w=1,mod=00 rm
                  Dw Offset Champ16ModRm01  ; w=1,mod=01 rm
                  Dw Offset Champ16ModRm10  ; w=1,mod=10 rm
                  Dw Offset Champ16ModRm111 ; w=1,mod=11 rm

Champ16ModRM00   Db   _DsBxSi,_DsBxDi,_SsBpSi,_SsBpDi
                 Db   _DsSi,_DsDi,_Dsdep16,_DsBx

Champ16ModRM01   Db   _DsBxSiDep8,_DsBxDiDep8,_SsBpSiDep8,_SsBpDiDep8
                 Db   _DsSiDep8,_DsDiDep8,_SsBpDep8,_DsBxDep8

Champ16ModRM10   Db   _DsBxSiDep16,_DsBxDiDep16,_SsBpSiDep16,_SsBpDiDep16
                 Db   _DsSiDep16,_DsDiDep16,_SsBpDep16,_DsBxDep16

Champ16ModRM110  Db   _Al,_Cl,_Dl,_Bl,_Ah,_Ch,_Dh,_Bh

Champ16ModRM111  Db   _Ax,_Cx,_Dx,_Bx,_Sp,_Bp,_Si,_Di

SregTable        Db   _Es,_Cs,_Ss,_Ds,_Fs,_Gs,_None

Champ32ModRm_Head Dw 100b ,Offset Champ32ModRm00
                  Dw 101b ,Offset Champ32ModRm01
                  Dw 110b ,Offset Champ32ModRm10
                  Dw 011b ,Offset Champ32ModRm110
                  Dw 111b ,Offset Champ32ModRm111
                  Dw -1   ,-1

Champ32ModRm00   Db  _DsEax
                 Db  _DsEcx
                 Db  _DsEdx
                 Db  _DsEbx
                 Db  _Sib
                 Db  _DsOfs32
                 Db  _DsEsi
                 Db  _DsEdi

Champ32ModRm01   Db  000b,_DsEaxDep8
                 Db  001b,_DsEcxDep8
                 Db  010b,_DsEdxDep8
                 Db  011b,_DsEbxDep8
                 Db  100b,_SibDep8
                 Db  101b,_DsEbpDep8
                 Db  110b,_DsEsiDep8
                 Db  111b,_DsEdiDep8

Champ32ModRm10   Db  000b,_DsEaxDep32
                 Db  001b,_DsEcxDep32
                 Db  010b,_DsEdxDep32
                 Db  011b,_DsEbxDep32
                 Db  100b,_SibDep32
                 Db  101b,_DsEbpDep32
                 Db  110b,_DsEsiDep32
                 Db  111b,_DsEdiDep32

Champ32ModRM110  Db   000b,_Al
                 Db   001b,_Cl
                 Db   010b,_Dl
                 Db   011b,_Bl
                 Db   100b,_Ah
                 Db   101b,_Ch
                 Db   110b,_Dh
                 Db   111b,_Bh

Champ32ModRM111  Db   000b,_Eax
                 Db   001b,_Ecx
                 Db   010b,_Edx
                 Db   011b,_Ebx
                 Db   100b,_Esp
                 Db   101b,_Ebp
                 Db   110b,_Esi
                 Db   111b,_Edi

                 ; 00 -> 07
OpListe1         DB _Add    ,   _dwmodregmrdep
                 DB _Add    ,   _dwmodregmrdep
                 DB _Add    ,   _dwmodregmrdep
                 DB _Add    ,   _dwmodregmrdep
                 DB _Add    ,   _AccuImm
                 DB _Add    ,   _AccuImm
                 DB _PushEs ,   _Imm
                 DB _PopEs  ,   _Imm
                 ; 08 -> 0F
                 DB _Or     ,   _dwmodregmrdep
                 DB _Or     ,   _dwmodregmrdep
                 DB _Or     ,   _dwmodregmrdep
                 DB _Or     ,   _dwmodregmrdep
                 DB _Or     ,   _AccuImm
                 DB _Or     ,   _AccuImm
                 DB _PushCs ,   _Imm
                 DB _None   ,   _OpListe2
                 ; 10 -> 17
                 DB _Adc    ,   _dwmodregmrdep
                 DB _Adc    ,   _dwmodregmrdep
                 DB _Adc    ,   _dwmodregmrdep
                 DB _Adc    ,   _dwmodregmrdep
                 DB _Adc    ,   _AccuImm
                 DB _Adc    ,   _AccuImm
                 DB _PushSs ,   _imm
                 DB _PopSs  ,   _imm
                 ; 18 -> 1F
                 DB _Sbb    ,   _dwmodregmrdep
                 DB _Sbb    ,   _dwmodregmrdep
                 DB _Sbb    ,   _dwmodregmrdep
                 DB _Sbb    ,   _dwmodregmrdep
                 DB _Sbb    ,   _AccuImm
                 DB _Sbb    ,   _AccuImm
                 DB _PushDs ,   _imm
                 DB _PopDs  ,   _imm
                 ; 20 -> 27
                 DB _And    ,   _dwmodregmrdep
                 DB _And    ,   _dwmodregmrdep ; hum hum
                 DB _And    ,   _dwmodregmrdep
                 DB _And    ,   _dwmodregmrdep
                 DB _And    ,   _AccuImm
                 DB _And    ,   _AccuImm
                 DB _SegEs  ,   _imm
                 DB _Daa    ,   _imm
                 ; 28 -> 2F
                 DB _Sub    ,   _dwmodregmrdep
                 DB _Sub    ,   _dwmodregmrdep  ; hum hum
                 DB _Sub    ,   _dwmodregmrdep
                 DB _Sub    ,   _dwmodregmrdep
                 DB _Sub    ,   _AccuImm
                 DB _Sub    ,   _AccuImm
                 DB _SegCs  ,   _imm
                 DB _Das    ,   _imm
                 ; 30 -> 37
                 DB _Xor    ,   _dwmodregmrdep
                 DB _Xor    ,   _dwmodregmrdep
                 DB _Xor    ,   _dwmodregmrdep
                 DB _Xor    ,   _dwmodregmrdep
                 DB _Xor    ,   _AccuImm ;_dwmodregmrdep
                 DB _Xor    ,   _AccuImm ;_dwmodregmrdep
                 DB _SegSs  ,   _imm
                 DB _Aaa    ,   _imm
                 ; 38 -> 3F
                 DB _Cmp    ,   _dwmodregmrdep
                 DB _Cmp    ,   _dwmodregmrdep
                 DB _Cmp    ,   _dwmodregmrdep
                 DB _Cmp    ,   _dwmodregmrdep
                 DB _Cmp    ,   _AccuImm ;
                 DB _Cmp    ,   _AccuImm ;
                 DB _SegDs  ,   _imm
                 DB _Aas    ,   _imm
                 ; 40 -> 47
                 Db _Inc    ,   _UseReg
                 Db _Inc    ,   _UseReg
                 Db _Inc    ,   _UseReg
                 Db _Inc    ,   _UseReg
                 Db _Inc    ,   _UseReg
                 Db _Inc    ,   _UseReg
                 Db _Inc    ,   _UseReg
                 Db _Inc    ,   _UseReg
                 ; 48 -> 4F
                 Db _Dec    ,   _UseReg
                 Db _Dec    ,   _UseReg
                 Db _Dec    ,   _UseReg
                 Db _Dec    ,   _UseReg
                 Db _Dec    ,   _UseReg
                 Db _Dec    ,   _UseReg
                 Db _Dec    ,   _UseReg
                 Db _Dec    ,   _UseReg
                 ; 50 -> 57
                 Db _Push   ,   _UseReg
                 Db _Push   ,   _UseReg
                 Db _Push   ,   _UseReg
                 Db _Push   ,   _UseReg
                 Db _Push   ,   _UseReg
                 Db _Push   ,   _UseReg
                 Db _Push   ,   _UseReg
                 Db _Push   ,   _UseReg
                 ; 58 -> 5F
                 Db _Pop   ,   _UseReg
                 Db _Pop   ,   _UseReg
                 Db _Pop   ,   _UseReg
                 Db _Pop   ,   _UseReg
                 Db _Pop   ,   _UseReg
                 Db _Pop   ,   _UseReg
                 Db _Pop   ,   _UseReg
                 Db _Pop   ,   _UseReg
                 ; 60  -> 67
                 Db _PushA ,   _Imm
                 Db _PopA  ,   _Imm
                 Db _Bound ,   _Imm     ; pas vrais ca
                 Db _Arpl  ,   _Imm
                 Db _SegFs ,   _Imm
                 Db _SegGs ,   _Imm
                 Db _None  ,   _SetOpeSize
                 Db _None  ,   _SetAdrSize
                 ; 68  -> 6F
                 Db _Push  ,   _Imm     ; pas vrais ca
                 Db _Imul  ,   _Imm
                 Db _Push  ,   _Imm
                 Db _Imul  ,   _Imm
                 Db _Ins   ,   _TestBWD
                 Db _Ins   ,   _TestBWD
                 Db _Out   ,   _TestBWD
                 Db _Out   ,   _TestBWD
                 ; 70  -> 77
                 Db _Jcond ,   _MkeCond ; Operaionnel sauf 32b
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 ; 78  -> 7F
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 Db _Jcond ,   _MkeCond
                 ; 80 -> 87
                 Db _None  ,   _GroupeA
                 Db _None  ,   _GroupeA
                 Db _None  ,   _GroupeA
                 Db _None  ,   _GroupeA
                 Db _Test  ,   _Imm
                 Db _Test  ,   _Imm
                 Db _Xchg  ,   _Imm
                 Db _Xchg  ,   _Imm
                 ; 88 -> 8F
                 Db _Mov   ,   _Imm             ; Reg/Mem,Reg/Mem ; 88
                 Db _Mov   ,   _Imm             ;               ; 89
                 Db _Mov   ,   _RegReg8         ;               ; 8A
                 Db _Mov   ,   _Imm             ;               ; 8B
                 Db _Mov   ,   _ModSregRmDep_1  ; Reg/mem,Sreg  ; 8C
                 Db _Lea   ,   _Imm                             ; 8D
                 Db _Mov   ,   _Imm                             ; 8E
                 Db _Pop   ,   _Imm                             ; 8F
                 ; 90 -> 97
                 Db _Xchg  ,   _UseReg
                 Db _Xchg  ,   _UseReg
                 Db _Xchg  ,   _UseReg
                 Db _Xchg  ,   _UseReg
                 Db _Xchg  ,   _UseReg
                 Db _Xchg  ,   _UseReg
                 Db _Xchg  ,   _UseReg
                 Db _Xchg  ,   _UseReg
                 ; 98 -> 9F
                 Db _Cbw   ,   _Imm
                 Db _Cwd   ,   _Imm
                 Db _CallF ,   _Imm
                 Db _Wait  ,   _Imm
                 Db _PushF ,   _Imm
                 Db _PopF  ,   _Imm
                 Db _Sahf  ,   _Imm
                 Db _Lahf  ,   _Imm
                 ; A0 -> A7
                 Db _Mov   ,   _AccuMem                         ; 00  AccuMem
                 Db _Mov   ,   _AccuMem                         ; 01
                 Db _Mov   ,   _MemAccu                         ; 10  MemAccu
                 Db _Mov   ,   _MemAccu                         ; 11
                 Db _Mov   ,   _TestBWD
                 Db _Mov   ,   _TestBWD
                 Db _Cmp   ,   _TestBWD
                 Db _Cmp   ,   _TestBWD
                 ; A8 -> AF
                 Db _Test  ,   _Imm
                 Db _Test  ,   _Imm
                 Db _Sto   ,   _TestBWD
                 Db _Sto   ,   _TestBWD
                 Db _Lod   ,   _TestBWD
                 Db _Lod   ,   _TestBWD
                 Db _Sca   ,   _TestBWD
                 Db _Sca   ,   _TestBWD
                 ; B0 -> B7
                 Db _Mov   ,   _RegImm8
                 Db _Mov   ,   _RegImm8
                 Db _Mov   ,   _RegImm8
                 Db _Mov   ,   _RegImm8
                 Db _Mov   ,   _RegImm8
                 Db _Mov   ,   _RegImm8
                 Db _Mov   ,   _RegImm8
                 Db _Mov   ,   _RegImm8
                 ; B8 -> BF
                 Db _Mov   ,   _RegImm16
                 Db _Mov   ,   _RegImm16
                 Db _Mov   ,   _RegImm16
                 Db _Mov   ,   _RegImm16
                 Db _Mov   ,   _RegImm16
                 Db _Mov   ,   _RegImm16
                 Db _Mov   ,   _RegImm16
                 Db _Mov   ,   _RegImm16
                 ; C0 -> C7
                 Db _None  ,   _GroupeB
                 Db _None  ,   _GroupeB
                 Db _RetN  ,   _Imm
                 Db _RetN  ,   _Imm
                 Db _Les   ,   _Imm
                 Db _Lds   ,   _Imm
                 Db _Mov   ,   _Imm
                 Db _Mov   ,   _Imm
                 ; C8 -> CF
                 Db _Enter ,   _Imm
                 Db _Leave ,   _Imm
                 Db _RetF  ,   _Imm
                 Db _RetF  ,   _Imm
                 Db _Int3  ,   _Imm
                 Db _Int   ,   _ImmHex08
                 Db _Into  ,   _Imm
                 Db _Iret  ,   _Imm
                 ; D0 -> D7
                 db _None  ,   _GroupeB
                 db _None  ,   _GroupeB
                 db _None  ,   _GroupeB
                 db _None  ,   _GroupeB
                 Db _Aam   ,   _Imm
                 Db _Aad   ,   _Imm
                 Db _SetAlc,   _Imm
                 Db _Xlat  ,   _Imm
                 ; D8 -> DF
                 Db _None  ,   _Copro
                 Db _None  ,   _Copro
                 Db _None  ,   _Copro
                 Db _None  ,   _Copro
                 Db _None  ,   _Copro
                 Db _None  ,   _Copro
                 Db _None  ,   _Copro
                 Db _None  ,   _Copro
                 ; E0 -> E7
                 Db _Loop  ,   _TestN_NE
                 Db _Loop  ,   _TestN_NE
                 Db _Loop  ,   _Imm
                 Db _JCXZ  ,   _Imm
                 Db _In    ,   _Imm
                 Db _In    ,   _Imm
                 Db _Out   ,   _Imm
                 Db _Out   ,   _Imm
                 ; E8 -> EF
                 Db _Call  ,   _CallImm
                 Db _Jmp   ,   _Imm
                 Db _Jmp   ,   _Imm
                 Db _Jmp   ,   _Imm
                 Db _In    ,   _Imm
                 Db _In    ,   _Imm
                 Db _Out   ,   _Imm
                 Db _Out   ,   _Imm
                 ; F0 -> F7
                 Db _Lock  ,   _Imm
                 Db _Lock  ,   _Imm
                 Db _Rep   ,   _Imm
                 Db _Rep   ,   _Imm
                 Db _Hlt   ,   _Imm
                 Db _Cmc   ,   _Imm
                 Db _None  ,   _GroupeC
                 ; F8 -> FF
                 Db _Clc   ,   _Imm
                 Db _Stc   ,   _Imm
                 Db _Cli   ,   _Imm
                 Db _Sti   ,   _Imm
                 Db _Cld   ,   _Imm
                 Db _Std   ,   _Imm
                 Db _None  ,   _GroupeD
                 Db _None  ,   _GroupeE

Even
OpFunc           Dw Offset ImmResult
                 Dw Offset DwmodregMrDep
                 Dw Offset RegImm16
                 Dw Offset Usereg1632    ; Pas ca normalement
                 Dw Offset ImmH08
                 Dw Offset RegMemSreg
                 Dw Offset MemAccu
                 Dw Offset AccuMem
                 Dw Offset CallImm
                 Dw Offset MkeCondImm8
                 Dw Offset SetOpeSize
                 Dw Offset SetAdrSize
                 Dw Offset RegImm08
                 Dw Offset RegReg08
                 Dw Offset AccuImm

ReadSeg          DW 0
ReadOfs          DW 0
ReadData08       DB 0   ; Lecture d'octet
ReadData16       DW 0
ReadData32       DD 0

Val_Sreg         DB 0
Val_D            DB 0
Val_W            DB 0
Val_Mod          DB 0
Val_mr           DB 0
Val_Dep          DB 0
Val_OpeSize      DB 0
Val_AdrSize      DB 0

SetOpeSize:
Sub Word Ptr CurrentXY,2
Mov Byte Ptr Val_OpeSize,1
RetN
SetAdrSize:
Sub Word Ptr CurrentXY,2
Mov Byte Ptr Val_AdrSize,1
RetN

MkeCondImm8:         ; Identitication d'une Condition de Saut Court si verifier
Xor Ax,Ax
Mov Al,Byte Ptr Cs:[ReadData08]
And Al,0Fh
Mov Bx,_JcondFirst
Add Ax,Bx
Sub CurrentXy,2
Mov Cx,0000Fh
Call Xdisplay
Call ReadOne
Mov Ax,ReadOfs
Xor Bx,Bx
Mov Bl,ReadData08
Add Ax,Bx
Mov ReadData16,Ax
Mov Cx,0A00Fh
Call Hex16
RetN

ImmResult:       ; Operande a traitement Immediat
RetN

dwmodregmrdep:   ; traitement Specifique
Xor Ax,Ax
Mov Al,Byte Ptr Cs:[ReadData08] ;
And Al,1
Mov Byte Ptr Val_w,Al
Mov Al,Byte Ptr Cs:[ReadData08] ;
And Al,2
Shr Ax,1
Mov Byte Ptr Val_d,Al
Call ReadOne

Cmp Val_d,1
Je  DwRegModRm08
DwModRmReg08:
Xor Ax,Ax
Mov Al,Byte Ptr [ReadData08]
And Al,11000000b                ; Lecture Champs Mod
Shr Ax,6                        ;
Mov Bx,Offset Champ16ModRm_Head
Shl Ax,1
Add Bx,Ax
Xor Ax,Ax
Mov Al,Byte Ptr Cs:Val_W
Shl Ax,3
Add Bx,Ax
Mov Bx,Word Ptr Cs:[Bx]
Xor Ax,Ax
Mov Al,Byte Ptr [ReadData08]
And Al,111b
Add Bx,Ax
Xor Ax,Ax
Mov Al,Byte Ptr Cs:[Bx]
Mov Cx,000Eh
Call Xdisplay
Mov Cx,000Bh
Call Virgule
Xor Ax,Ax
Mov Bx,Offset ChampReg_Head
Mov Al,Byte Ptr Val_w
Shl Ax,1
Add Al,Byte Ptr Val_OpeSize
Shl Ax,1
Add Bx,Ax
Mov Bx,Word Ptr Cs:[Bx]
Xor Ax,Ax
Mov Al,Byte Ptr [ReadData08]
And Al,0111000b
Shr Ax,3
Add Bx,Ax
Mov Al,Byte Ptr Cs:[BX]
Mov Cx,0A00Eh
Call Xdisplay
RetN
DwRegModRm08:
RetN
Comment#
DwModOpe16_:
RetN
DwModOpe32:
RetN
Comment#

CallImm:
Cmp Val_OpeSize,1
Je  CallImm32
CallImm16:
Mov Ax,_CsImm16
Mov Cx,0A00Fh
Call XdisplayAdr
Retn
CallImm32:
Retn

RegReg08:
Call ReadOne
Xor Ax,Ax                       ; Traitement reg = Op1
Mov Al,Byte Ptr Cs:[ReadData08]
And Al,0111000b
Shr Al,3
Mov Bx,Offset ChampReg
Add Bx,Ax
Xor Ax,Ax
Mov Al,Byte Ptr Cs:[Bx]
Mov Cx,000Eh
Call Xdisplay
Mov Cx,000Bh
Call Virgule
Xor Ax,Ax                       ; Traitement Mod+R/m = Op2
Mov Al,Byte Ptr Cs:[ReadData08]
And Al,0111b         ; Recuperation de Mod
Mov Bx,Offset Champ16ModRm110
Add Bx,Ax
Xor Ax,Ax
Mov Al,Byte Ptr Cs:[Bx]
Mov Cx,0A00Eh
Call Xdisplay
RetN

UseReg1632:
Xor  Ax,Ax
Mov  Al,Byte Ptr Cs:[ReadData08]
And  Al,0111b
Cmp  Val_OpeSize,1
Je   UseReg32
UseReg16:
Mov  Bx,Offset ChampReg1
Add  Bx,Ax
Mov  Al,Cs:[Bx]
Mov  Cx,0A00Bh
Call Xdisplay
RetN
UseReg32:
Mov  Bx,Offset ChampReg2
Add  Bx,Ax
Mov  Al,Cs:[Bx]
Mov  Cx,0A00Bh
Call Xdisplay
RetN
MemAccu:
Xor  Ax,Ax
Mov  Al,Byte Ptr Cs:[ReadData08]
And  Al,1
Cmp  Al,1
Je   MemAccu1632
;    Operande 8 Bit
;    ? Non Traiter
MemAccu1632:
Cmp  Val_OpeSize,1
Je MemAccu32
MemAccu16:              ; Implicite Ds:[1]
Mov Ax,_Dsdep16
Mov Cx,000Eh
Call Xdisplay
Mov Cx,000Fh
Call Virgule
Mov Ax,_Ax
Mov Cx,0A00Bh
Call Xdisplay
RetN
MemAccu32:
RetN

AccuMem:
Xor  Ax,Ax
Mov  Al,Byte Ptr Cs:[ReadData08]
And  Al,1
Cmp  Al,1
Je   AccuMem1632
;    Operande 8 Bit
;    ? Non Traiter
Mov Ax,_Al
Mov Cx,000Eh
Call Xdisplay
Mov  CX,000Fh
Call Virgule
Call ImmH08
RetN

AccuMem1632:
Cmp  Val_OpeSize,1
Je MemAccu32
AccuMem16:              ; Implicite Ds:[1]
Mov Ax,_Ax
Mov Cx,000Eh
Call Xdisplay
Mov Cx,000Fh
Call Virgule
Mov Ax,_Dsdep16
Mov Cx,0A00Bh
Call Xdisplay
RetN
AccuMem32:
RetN

AccuImm:
Xor  Ax,Ax
Mov  Al,Byte Ptr Cs:[ReadData08]
And  Al,1
Cmp  Al,1
Je   AccuImm1632
Mov Ax,_Al
Mov Cx,000Eh
Call Xdisplay
Mov  CX,000Fh
Call Virgule
Call ImmH08
RetN

AccuImm1632:
Cmp  Val_OpeSize,1
Je AccuImm32
AccuImm16:
Mov Ax,_Ax
Mov Cx,000Eh
Call Xdisplay
Mov Cx,000Fh
Call Virgule
Call ImmH16
RetN
AccuImm32:
RetN

RegMemSreg:
Call ReadOne
Xor  Ax,Ax
Mov  Al,Byte Ptr Cs:[ReadData08]
; voir suivant mode 16,32b
And  AL,11000000b
Shr  Al,6
Cmp  Al,3
Je   RegMemSreg_Ope32
RegMemSreg_Ope16:
Shl  Ax,1
Mov  Bx,Ax
Add  Bx,Offset Champ16ModRm_Head
Mov  Bx,Word Ptr Cs:[Bx]
Xor  Ax,Ax
Mov  Al,Byte Ptr Cs:[ReadData08]
And  Ax,00111000b
Shr  Ax,3
Mov  Val_Sreg,Al
Xor  Ax,Ax
Mov  Al,Byte Ptr Cs:[ReadData08]
And  Ax,0111b
Add  Bx,Ax
Mov  Al,Byte Ptr Cs:[Bx]
Mov  Cx,000Eh
Call Xdisplay
Mov  Cx,000Fh
Call Virgule
Mov  Bx,Offset SregTable
Xor  Ax,Ax
Mov  Al,Val_Sreg
Add  Bx,Ax
Mov  Al,Cs:[Bx]
Mov  Cx,0A00Bh
Call Xdisplay
retN
RegMemSreg_Ope32:
Cmp Val_OpeSize,0
Jne RegMemSreg_Ope16
RetN

ImmH08:        ; Affichage D'hexa 08
Call ReadOne     ; Lecture Nouvel Operande
Mov  Cx,0A00Fh   ;
Call Hex08
RetN

ImmH16:        ; Affichage D'hexa 08
Call Read16      ; Lecture Nouvel Operande
Mov  Cx,0A00Fh   ;
Call Hex16
RetN

RegImm16:        ; Recherche Registre , Affichage Immediat 16 Ou Immediat 32
Cmp Val_OpeSize,1
Je RegImm32
Mov Bl,ReadData08
And Bx,07
Add Bx,Offset ChampReg1
Xor Ax,Ax
Mov Al,Byte Ptr Cs:[Bx]
Mov Cx,000Eh
Call XDisplay
Call Read16
Mov Cx,0000Bh
Call Virgule
Mov Cx,0A00Fh
Call Hex16
RetN
RegImm32:
Mov Bl,ReadData08
And Bx,07
Add Bx,Offset ChampReg2
Xor Ax,Ax
Mov Al,Byte Ptr Cs:[Bx]
Mov Cx,000Eh
Call XDisplay
Call Read32
Mov  Cx,0000Bh
Call Virgule
Mov  Cx,0A00Fh
Call Hex32
RetN

RegImm08:        ; Recherche Registre , Affichage Immediat 16 Ou Immediat 32
Cmp Val_OpeSize,1
Je RegImm0832
Mov Bl,ReadData08
And Bx,07
Add Bx,Offset ChampReg
Xor Ax,Ax
Mov Al,Byte Ptr Cs:[Bx]
Mov Cx,000Eh
Call XDisplay
Call ReadOne
Mov Cx,0000Bh
Call Virgule
Mov Cx,0A00Fh
Call Hex08
RetN
RegImm0832:
Mov Bl,ReadData08
And Bx,07
Add Bx,Offset ChampReg2
Xor Ax,Ax
Mov Al,Byte Ptr Cs:[Bx]
Mov Cx,000Eh
Call XDisplay
Call Read32
Mov  Cx,0000Bh
Call Virgule
Mov  Cx,0A00Fh
Call Hex32
RetN

XdisplayAdr:        ; Ax = Mne Num
Mov Bx,Ax
Shl Bx,4         ; Bx Contient L'offset
Mov Di,Word Ptr Cs:WhereXY
Cmp Di,Word Ptr Cs:CurrentXY
JG  XdisplayAdrCurrentGoal
Mov Di,Word Ptr Cs:CurrentXY
Add Di,2
XdisplayAdrCurrentGoal:
Mov Si,Bx
Add Si,Offset MneDisplay
Mov  Bx,0B800h
Mov  Es,Bx
Mov Ah,Cl
XdisplayAdrLoop:
Lodsb
Cmp  Al,' '
Je   XdisplayAdrDone
Cmp  Al,'1'
Je   DisplayAdrImm16
Cmp  Al,'2'
Je   DisplayAdrImm32
Stosw
Jmp  XdisplayAdrLoop
XdisplayAdrDone:
Mov Cl,Ch
Xor Ch,Ch
Mov Word Ptr Cs:[CurrentXY],Di
Add  Word Ptr Cs:WhereXY,Cx
Cmp Cx,0
Jg   VideValXdisplayAdr
RetN
VideValXdisplayAdr:
Call Clear_Val
RetN
DisplayAdrImm32:
Jmp XdisplayAdrLoop
DisplayAdrImm16:
Push Cx
Push Ax
Sub Di,2
Mov Word Ptr Cs:[CurrentXY],Di
Call Read16
Mov  Ax,ReadData16
Add  Ax,ReadOfs
Mov  ReadData16,Ax
Mov  Cx,000Fh
Call Hex16
Pop  Ax
Pop  Cx
Jmp  XdisplayAdrLoop

WhereXY   DW 00000h
CurrentXY DW 0FFFFh
Xdisplay:        ; Ax = Mne Num
Mov Bx,Ax
Shl Bx,4         ; Bx Contient L'offset
Mov Di,Word Ptr Cs:WhereXY
Cmp Di,Word Ptr Cs:CurrentXY
JG  XdisplayCurrentGoal
Mov Di,Word Ptr Cs:CurrentXY
Add Di,2
XdisplayCurrentGoal:
Mov Si,Bx
Add Si,Offset MneDisplay
Mov  Bx,0B800h
Mov  Es,Bx
Mov Ah,Cl
XdisplayLoop:
Lodsb
Cmp  Al,' '
Je   XdisplayDone
Cmp  Al,'0'
Je   DisplayImm08
Cmp  Al,'1'
Je   DisplayImm16
Cmp  Al,'2'
Je   DisplayImm32
Stosw
Jmp  XdisplayLoop
XdisplayDone:
Mov Cl,Ch
Xor Ch,Ch
Mov Word Ptr Cs:[CurrentXY],Di
Add  Word Ptr Cs:WhereXY,Cx
Cmp  Cx,0
Jg   VideValXdisplay
RetN
VideValXdisplay:
Call Clear_Val
RetN

RetN
DisplayImm32:
DisplayImm16:
Push Cx
Push Ax
Sub Di,2
Mov Word Ptr Cs:[CurrentXY],Di
Call Read16
Mov  Cx,000Fh
Call Hex16
Pop  Ax
Pop  Cx
Jmp  XdisplayLoop
DisplayImm08:
RetN

Hex08:
Mov Di,Word Ptr Cs:WhereXY
Cmp Di,Word Ptr Cs:CurrentXY
JG  Hex08CurrentGoal
Mov Di,Word Ptr Cs:CurrentXY
Add Di,2
Hex08CurrentGoal:
Mov  Bx,0B800h
Mov  Es,Bx
Mov  Ah,Cl
Mov  Bl,Byte Ptr Cs:[ReadData08]
And  Bx,0F0h
Shr  Bl,4
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bl,Byte Ptr Cs:[ReadData08]
And  Bx,0Fh
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov Cl,Ch
Xor Ch,Ch
Mov Word Ptr Cs:[CurrentXY],Di
Add  Word Ptr Cs:WhereXY,Cx
Cmp  Cx,0
Jg   VideVal08
RetN
VideVal08:
Call Clear_Val
RetN

Hex16:
Mov Di,Word Ptr Cs:WhereXY
Cmp Di,Word Ptr Cs:CurrentXY
JG  Hex16CurrentGoal
Mov Di,Word Ptr Cs:CurrentXY
Add Di,2
Hex16CurrentGoal:
Mov  Bx,0B800h
Mov  Es,Bx
Mov  Ah,Cl
Mov  Bx,Word Ptr Cs:[ReadData16]
Mov  Bl,Bh
And  Bx,0F0h
Shr  Bl,4
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bx,Word Ptr Cs:[ReadData16]
Mov  Bl,Bh
And  Bx,0Fh
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bx,Word Ptr Cs:[ReadData16]
And  Bx,0F0h
Shr  Bl,4
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bx,Word Ptr Cs:[ReadData16]
And  Bx,0Fh
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov Cl,Ch
Xor Ch,Ch
Mov Word Ptr Cs:[CurrentXY],Di
Add  Word Ptr Cs:WhereXY,Cx
Cmp  Cx,0
Jg   VideVal16
RetN
VideVal16:
Call Clear_Val
RetN

Hex32:
Mov Di,Word Ptr Cs:WhereXY
Cmp Di,Word Ptr Cs:CurrentXY
JG  Hex16CurrentGoal
Mov Di,Word Ptr Cs:CurrentXY
Add Di,2
Hex32CurrentGoal:
Mov  Bx,0B800h
Mov  Es,Bx
Mov  Ah,Cl
Mov  Bx,Word Ptr Cs:[ReadData32]
Mov  Bl,Bh
And  Bx,0F0h
Shr  Bl,4
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bx,Word Ptr Cs:[ReadData32]
Mov  Bl,Bh
And  Bx,0Fh
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bx,Word Ptr Cs:[ReadData32]
And  Bx,0F0h
Shr  Bl,4
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bx,Word Ptr Cs:[ReadData32]
And  Bx,0Fh
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage

Mov  Bx,Word Ptr Cs:[ReadData32]+[2]
Mov  Bl,Bh
And  Bx,0F0h
Shr  Bl,4
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bx,Word Ptr Cs:[ReadData32]+[2]
Mov  Bl,Bh
And  Bx,0Fh
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bx,Word Ptr Cs:[ReadData32]+[2]
And  Bx,0F0h
Shr  Bl,4
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage
Mov  Bx,Word Ptr Cs:[ReadData32]+[2]
And  Bx,0Fh
Mov  Al,Byte Ptr Cs:[Plug][Bx]
StosW                           ; Affichage

Mov Cl,Ch
Xor Ch,Ch
Mov Word Ptr Cs:[CurrentXY],Di
Add  Word Ptr Cs:WhereXY,Cx
Cmp  Cx,0
Jg   VideVal32
RetN
VideVal32:
Call Clear_Val
RetN

Virgule:
Mov  Bx,0B800h
Mov  Es,Bx
Mov  Di,CurrentXY
Mov  Ah,Cl
Mov  Al,','
Stosw
Mov Word Ptr Cs:[CurrentXY],Di
RetN

ReadOne:                       ; Lecture Standart d'un Octet
Push Es                        ;
Push Di                        ;
Push Ax                        ;
Mov  Di,Word Ptr ReadSeg       ;
Mov  Es,Di                     ;
Mov  Di,Word Ptr ReadOfs       ;
Mov  Al,Byte Ptr Es:[Di]       ;
Mov  Byte Ptr ReadData08,Al    ; Stockage Dans ReadData08
Inc  Di
Mov  Word Ptr ReadOfs,Di
Pop  Ax                        ;
Pop  Di                        ;
Pop  Es                        ;
RetN                           ;
Read16:                        ; Lecture Standart deux Octets
Push Es                        ;
Push Di                        ;
Push Ax
Mov  Di,Word Ptr ReadSeg       ;
Mov  Es,Di                     ;
Mov  Di,Word Ptr ReadOfs       ;
Mov  Ax,Word Ptr Es:[Di]       ;
Mov  Word Ptr ReadData16,Ax    ; Stockage Dans ReadData16
Add  Di,2
Mov  Word Ptr ReadOfs,Di
Pop  Ax
Pop  Di                        ;
Pop  Es                        ;
RetN                           ;
Read32:                        ; Lecture Standart deux Octets
Push Es                        ;
Push Di                        ;
Push Ax
Mov  Di,Word Ptr ReadSeg       ;
Mov  Es,Di                     ;
Mov  Di,Word Ptr ReadOfs       ;
Mov  Ax,Word Ptr Es:[Di]       ;
Mov  Word Ptr [ReadData32]+[2],Ax    ; Stockage Dans ReadData16
Add  Di,2
Mov  Ax,Word Ptr Es:[Di]             ;
Mov  Word Ptr [ReadData32],Ax        ; Stockage Dans ReadData16
Add  Di,2
Mov  Word Ptr ReadOfs,Di
Pop  Ax
Pop  Di                        ;
Pop  Es                        ;
RetN                           ;

SeekList:
     Xor bx,bx                          ; Mise En Clair de L'opcode
     Mov bl,Byte Ptr ReadData08         ;
     Shl bx,1                   ; * 2   ;
     Add bx,Offset OpListe1             ;
     Mov Al,Byte Ptr Cs:[bx]            ;
     Xor Ah,Ah                          ;
     Mov Cx,0000Bh                      ;
     Call Xdisplay                      ;

     Push Ds
     Pop  Es

     Xor bx,bx                          ; Lancement de la routine
     Mov bl,Byte Ptr ReadData08         ; Associe a L'opcode en Question
     Shl bx,1                   ; * 2   ;
     Add bx,Offset OpListe1             ; OpListe1 Base de travail
     Mov Al,Byte Ptr Cs:[bx][1]         ;
     Xor Ah,Ah                          ;
     ; Dans Ax L'index de Fonction
     Mov Bx,Ax
     Shl Bx,1
     Add Bx,Offset OpFunc
     Mov Ax,Word Ptr CS:[Bx]
     Call   Word Ptr Cs:[Bx]

RetN
Clear_Val:
Mov Word  Ptr  ReadData16,0
Mov Dword Ptr  ReadData32,0
Mov Byte  Ptr  Val_Sreg,0
Mov Byte  Ptr  Val_D,0
Mov Byte  Ptr  Val_W,0
Mov Byte  Ptr  Val_Mod,0
Mov Byte  Ptr  Val_mr,0
Mov Byte  Ptr  Val_Dep,0
Mov Byte  Ptr  Val_OpeSize,0
Mov Byte  Ptr  Val_AdrSize,0
RetN

Demarre:
Comment#
       Mov Al , Cl
       Mov Eax,012345678h
       Mov Ebx,03h
       Mov Al ,12h
       Dec Eax
Comment#
       And Al,16
       And Ax,160*23
       Cmp Al,16
       Cmp Ax,160*23
       Cmp Byte Ptr [Bx][Val_w],Dl
       Mov Ax,03h
       Int 10h
       Mov Word Ptr ReadSeg,Cs
       Mov Ax,Offset Demarre
       Mov Word Ptr ReadOfs,Ax
       Call Clear_Val
       Lire:                       ; Effectue la lecture
       Call ReadOne                ; d'une page
       Call SeekList               ; soit 23 Lignes de Texte
       Mov Ax,Word Ptr WhereXy     ;
       Cmp Ax,160*23               ;
       Jle Lire                    ;
       Mov Ax,0200h
       Mov Bx,0000h
       Mov Dx,1700h
       Int 10h
       Int 20h;
EndS
End StartHere

Conclusion :


le code affiché correspond au label
Demarre:
And Al,16
And Ax,160*23
Cmp Al,16
Cmp Ax,160*23
Cmp Byte Ptr [Bx][Val_w],Dl
Mov Ax,03h
Int 10h
Mov Word Ptr ReadSeg,Cs
Mov Ax,Offset Demarre
Mov Word Ptr ReadOfs,Ax
ect...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (BasilYercin)