汇编语言ax=0c58ch,51单片机, 汇编和反汇编的源代码

code  segment

assume cs:code,ds:code,es:code,ss:code

m0000:

mov

ax,offset m8000

mov ax,cs

mov ds,ax

mov es,ax

mov ss,ax

mov sp,0fff0h

jmp

m21x

org 8800h

d114:

dw 3

dw offset d136

db 'd',0,'a',0,'q',0,0

d136:

dw offset m42d9

dw offset m204a

dw offset m70eb

dw 0

d5dc:

db

0d0h,0,'PSW',0,0e0h,0,'ACC',0,0f0h,0,'B',0

db

81h,0,'SP',0,82h,0,'DPL',0,83h,0,'DPH',0

db 88h,0,'TCON',0,89h,0,'TMOD',0

db 0a8h,0,'IE',0,0b8h,0,'IP',0

db

8ah,0,'TL0',0,8bh,0,'TL1',0,8ch,0,'TH0',0

db 8dh,0,'TH1',0

db 0b0h,0,'P3',0,0a0h,0,'P2',0

db

90h,0,'P1',0,80h,0,'P0',0,87h,0,'PCON',0

db 98h,0,'SCON',0,99h,0,'SBUF',0

db

88h,0,'IT0',0,89h,0,'IE0',0,8ah,0,'IT1',0

db

8bh,0,'IE1',0,8ch,0,'IR0',0,8dh,0,'TF0',0

db 8eh,0,'TR1',0,8fh,0,'TF1',0

db 98h,0,'RI',0,99h,0,'TI',0,9ah,0,'RB8',0

db

9bh,0,'TB8',0,9ch,0,'REN',0,9dh,0,'SM2',0

db 9eh,0,'SM1',0,9fh,0,'SM0',0

db

0a8h,0,'EX0',0,0a9h,0,'ET0',0,0aah,0,'EX1',0

db

0abh,0,'ET1',0,0ach,0,'ES',0,0afh,0,'EA',0

db

0b0h,0,'PXD',0,0b1h,0,'TXD',0,0b2h,0,'INT0',0

db

0b3h,0,'INT1',0,0b4h,0,'T0',0,0b5h,0,'T1',0

db

0b6h,0,'WR',0,0b7h,0,'RD',0,0b8h,0,'PX0',0

db

0b9h,0,'PT0',0,0bah,0,'PX1',0,0bbh,0,'PT1',0

db 0bch,0,'PS',0

db

0d0h,0,'P',0,0d2h,0,'F1',0,0d3h,0,'OV',0

db

0d3h,0,'RS0',0,0d4h,0,'RS1',0,0d5h,0,'F0',0

db 0d6h,0,'AC',0,0d7h,0,'CY',0

d9dc:

db 9dh,0,0,1  ;NOP 00

db 84h,0c6h,0,2  ;AJMP 01

db 98h,0c7h,0,3  ;LJMP 02

db 0a5h,8ch,0,1  ;RR

03

db 8eh,8ch,0,1  ;INC 04

db 8eh,0c2h,0,2  ;INC 05

db 8eh,88h,0,1  ;INC 06

db 8eh,89h,0,1  ;INC 07

db 8eh,80h,0,1  ;INC 08

db 90h,0c1h,0c3h,3 ;JBC 10

db 81h,0c6h,0,2  ;ACALL 11

db 97h,0c7h,0,3  ;LCALL 12

db 0a6h,8ch,0,1  ;RRC 13

db 8ah,8ch,0,1  ;DEC

14

db 8ah,0c2h,0,2  ;DEC 15

db 8ah,88h,0,1  ;DEC 16

db 8ah,89h,0,1  ;DEC 17

db 8ah,80h,0,1  ;DEC

18

db 8fh,0c1h,0c3h,3 ;JB 20

db 84h,0c6h,0,2  ;AJMP 21

db 0a1h,0,0,1  ;RET

22

db 0a3h,8ch,0,1  ;RL 23

db 82h,8ch,0c4h,2  ;ADD

24

db 82h,8ch,0c2h,2  ;ADD 25

db 82h,8ch,88h,1  ;ADD

26

db 82h,8ch,89h,1  ;ADD 27

db 82h,8ch,80h,1  ;ADD

28

db 93h,0c1h,0c3h,3  ;JNB

30

db 81h,0c6h,0,2  ;ACALL

31

db 0a2h,0,0,1  ;RETI 32

db 0a4h,8ch,0,1  ;RLC

33

db 83h,8ch,0c4h,2  ;ADDC

34

db 83h,8ch,0c2h,2  ;ADDC 35

db 83h,8ch,88h,1  ;ADDC 36

db 83h,8ch,89h,1  ;ADDC

37

db 83h,8ch,80h,1  ;ADDC 38

db 91h,0c3h,0,2  ;JC 40

db 84h,0c6h,0,2  ;AJMP 41

db 9eh,0c2h,8ch,2  ;ORL 42

db 9eh,0c2h,0c4h,3  ;ORL

43

db 9eh,8ch,0c4h,2  ;ORL

44

db 9eh,8ch,0c2h,2  ;ORL 45

db 9eh,8ch,88h,1  ;ORL 46

db 9eh,8ch,89h,1  ;ORL 47

db 9eh,8ch,80h,1  ;ORL

48

db 94h,0c3h,0,2  ;JNC 50

db 81h,0c6h,0,2  ;ACALL 51

db 85h,0c2h,8ch,2  ;ANL 52

db 85h,0c2h,0c4h,3  ;ANL

53

db 85h,8ch,0c4h,2  ;ANL

54

db 85h,8ch,0c2h,2  ;ANL 55

db 85h,8ch,88h,1  ;ANL 56

db 85h,8ch,89h,1  ;ANL 57

db 85h,8ch,80h,1  ;ANL

58

db 96h,0c3h,0,2  ;JZ 60

db 84h,0c6h,0,2  ;AJMP 61

db 0adh,0c2h,8ch,2  ;XRL 62

db 0adh,0c2h,0c4h,3  ;XRL 63

db 0adh,8ch,0c4h,2  ;XRL

64

db 0adh,8ch,0c2h,2  ;XRL 65

db 0adh,8ch,88h,1  ;XRL

66

db 0adh,8ch,89h,1  ;XRL 67

db 0adh,8ch,80h,1  ;XRL

68

db 95h,0c3h,0,2  ;JNZ 70

db 81h,0c6h,0,2  ;ACALL 71

db 9eh,8d,0c1h,2  ;ORL 72

db 92h,8ah,0,1  ;JMP 73

db 99h,8ch,0c4h,2  ;MOV 74

db 99h,0c2h,0c4h,3  ;MOV 75

db 99h,88h,0c4h,2  ;MOV

76

db 99h,89h,0c4h,2  ;MOV 77

db 99h,80h,0c4h,2  ;MOV

78

db 0a8h,0c3h,0,2  ;SJMP

80

db 84h,0c6h,0,2  ;AJMP 81

db 85h,8dh,0c1h,2  ;ANL 82

db 9ah,8ch,90h,1  ;MOVC

83

db 8bh,8eh,0,1  ;DIV

84

db 99h,0c2h,0c2h,3  ;MOV 85

db 99h,0c2h,88h,2  ;MOV

86

db 99h,0c2h,89h,2  ;MOV 87

db 99h,0c2h,80h,2  ;MOV

88

db 99h,8fh,0c5h,3  ;MOV

90

db 81h,0c6h,0,2  ;ACALL 91

db 99h,0c1h,8dh,2  ;MOV

92

db 9ah,8ch,8ah,1  ;MOVC 93

db 0a9h,8ch,0c4h,2  ;SUBB

94

db 0a9h,8ch,0c2h,2  ;SUBB

95

db 0a9h,8ch,88h,1  ;SUBB 96

db 0a9h,8ch,89h,1  ;SUBB 97

db 0a9h,8ch,80h,1  ;SUBB 98

db 9eh,8dh,0c0h,2  ;ORL

a0

db 84h,0c6h,0,2  ;AJMP a1

db 99h,8dh,0c1h,2  ;MOV

a2

db 8eh,8fh,0,1  ;INC a3

db 9ch,8eh,0,1  ;MUL a4

db 8dh,0,0,2  ;Undefines a5

db 99h,88h,0c2h,2  ;MOV a6

db 99h,89h,0c2h,2  ;MOV a7

db 99h,80h,0c2h,2  ;MOV

a8

db 85h,8dh,0c0h,2 ;ANL b0

db 81h,0c6h,0,2  ;ACALL b1

db 88h,0c1h,0,2  ;CPL

b2

db 88h,8dh,0,1  ;CPL b3

db 86h,8ch,0c4h,3  ;CJNE b4

db 86h,8ch,0,2  ;CJME b5

db 86h,88h,0c4h,3  ;CJNE b6

db 86h,89h,0c4h,3  ;CJNE

b7

db 86h,80h,0c4h,3  ;CJNE b8

db 0a0h,0c2h,0,2  ;PUSH

c0

db 84h,0c6h,0,2  ;AJMP c1

db 87h,0c1h,0,2  ;CLR

c2

db 87h,8dh,0,1  ;CLR c3

db 0aah,8ch,0,1  ;SWAP c4

db 0abh,8ch,0c2h,2  ;XCHG c5

db 0abh,8ch,88h,1  ;XCHG

c6

db 0abh,8ch,89h,1  ;XCHG c7

db 0abh,8ch,80h,1  ;XCHG

c8

db 9fh,0c2h,0,2  ;POP d0

db 81h,0c6h,0,2  ;ACALL d1

db 0a7h,0c1h,0,2  ;SETB d2

db 0a7h,8dh,0,1  ;SETB d3

db 89h,8ch,0,1  ;DA d4

db 8ch,0c2h,0c3h,3  ;DJNZ d5

db 0ach,8ch,88h,1  ;XCHD

d6

db 0ach,8ch,89h,1  ;XCHD d7

db 8ch,80h,0c3h,2  ;DJNZ

d8

db 9bh,8ch,8bh,1 ;MOVX e0

db 84h,0c6h,0,2  ;AJMP e1

db 9bh,8ch,88,1  ;MOVX

e2

db 9bh,8ch,89h,1  ;MOVX e3

db 87h,8ch,0,1  ;CLR e4

db 99h,8ch,0c2h,2  ;MOV

e5

db 99h,8ch,88h,1  ;MOV e6

db 99h,8ch,89h,1  ;MOV e7

db 99h,8ch,80h,1  ;MOV e8

db 9bh,8bh,8ch,1  ;MOVX

f0

db 81h,0c6h,0,2  ;ACALL f1

db 9bh,88h,8ch,1  ;MOVX

f2

db 9bh,89h,8ch,1  ;MOVX f3

db 88h,8ch,0,1  ;CPL f4

db 99h,0c2h,8ch,2  ;MOV f5

db 99h,88h,8ch,1  ;MOV

f6

db 99h,89h,8ch,1  ;MOV f7

db 99h,80h,8ch,1  ;MOV f8

dc1c:

db

81h,0,'ACALL',0,82h,0,'ADD',0,83h,0,'ADDC',0

db

84h,0,'AJMP',0,85h,0,'ANL',0,86h,0,'CJNE'

db

87h,0,'CLR',0,88h,0,'CPL',0,89h,0,'DA',0

db

8ah,0,'DEC',0,8bh,0,'DIV',0,8ch,0,'DJNZ',0

db

8dh,0,'Undefined',0,8eh,0,'INC',0,8fh,0,'JB',0

db

90h,0,'JBC',0,91h,0,'JC',0,92h,0,'JMP',0

db

93h,0,'JNB',0,94h,0,'JNC',0,95h,0,'JNZ',0

db

96h,0,'JZ',0,97h,0,'LCALL',0,98h,0,'LJMP',0

db

99h,0,'MOV',0,9ah,0,'MOVC',0,9bh,0,'MOVX',0

db

9ch,0,'MUL',0,9dh,0,'NOP',0,9eh,0,'ORL',0

db

9fh,0,'POP',0,0a0h,0,'PUSH',0,0a1h,0,'RET',0

db

0a2h,0,'RETI',0,0a3h,0,'RL',0,0a4h,0,'RLC',0

db

0a5h,0,'RR',0,0a6h,0,'RRC',0,0a7h,0,'SETB',0

db

0a8h,0,'SJMP',0,0a9h,0,'SUBB',0,0aah,0,'SWAP',0

db

0abh,0,'XCH',0,0ach,0,'XCHD',0,0adh,0,'XRL',0

db

0c0h,0,'END',0,0c1h,0,'ORG',0,0c2h,0,'DS',0

db

0c3h,0,'DB',0,0c4h,0,'DW',0,0c5h,0,'XDATA',0

db

0c6h,0,'DATA',0,0c7h,0,'BIT',0,0c8h,0,'EQU',0

db 0c9h,0,'=',0

dd76:

db

80h,0,'R0',0,81h,0,'R1',0,82h,0,'R2',0,83h,0,'R3',0

db

84h,0,'R4',0,85h,0,'R5',0,86h,0,'R6',0,87h,0,'R7',0

db

88h,0,'@R0',0,89h,0,'@R1',0,8ah,0,'@A+DPTR',0

db 8bh,0,'@DPTR',0,8ch,0,'A',0,8dh,0,'C',0

db

8eh,0,'AB',0,8fh,0,'DPTR',0,90h,0,'@A+PC',0

ded8:

db 'Assemble',0dh,0ah

db 'Dassemble',0dh,0ah

db 'Quit',0dh,0ah

db 0,0

d1044:

db 'Syntax error',0

m210:

db '51_Asm_Dasm copyfree

2015.11',0dh,0ah,0

m21x:

mov

si,offset m210 ;ban quan 2015.10

call

ma9b

mov si,offset m7368 ; key to contine

call ma9b

call m50d ; keybord

jmp

m6e5d

m379:

cld

mov dx,di

mov bx,di

xor ax,ax

jcxz m399

m382:

cmp byte ptr [si],0 ;1

jz m399

cmp byte ptr [si],0dh

jz m399

cmp byte ptr [si],20h

jz m396

cmp byte ptr [si],9

jnz m39b

m396:

inc si

loop m382

m399:

jmp m3db

m39b:

cmp byte ptr [si],20h

jbe m3db

movsb

loop m39b

m3db:

mov byte ptr [di],0

cmp di,dx

ret

m3e2:

dw 0

m42f:

push bp

mov bp,sp

push di

push cx

mov al,[si+1]

m437:

repnz scasb

jnz m455

push cx

push si

push di

dec di

dec di

mov cx,[bp+4]

repz cmpsb

pop di

pop si

pop cx

jz m44e

jcxz m455

jmp m437

m44e:

dec di

inc cx

m450:

dec di

inc cx

clc

jmp m458

m455:

pop cx

pop di

stc

m458:

mov sp,bp

pop bp

ret 2

m503:

call m50d

call m39ec ;a-z

ret

m50d:

push bx

mov ax,0

int 16h

mov ah,0

pop bx

ret

m556:  ;keybord

call m50d

ret

m5bb:

push di

call m50d

pop di

ret

m641:

push bp

mov bp,sp

sub sp,3

push bx

push dx

push si

;...

lodsw

;...

m674:

call m556  ;keybord

cmp al,20h

jb m6ab

;...

mov [si],al

inc si

call mb5b  ; display

jmp m674

m6ab:

cmp al,0dh

jz m71d ;ret

;...

cmp al,8

jnz m6db

m6c3:

;...

dec si

;6d1  ax,a20 int 10

mov ax,0a20h

mov cx,1

int 10h

jmp m674

m6db:

;...

mov al,8

jmp m6c3

;...

m71d:

mov byte ptr [si],0

pop si

;...

pop dx

pop bx

mov sp,bp

pop bp

ret

ma70:

push ax

ma71:

lodsb

or al,al

jz maa2

stosb

jmp ma71

ma7c:

push ax

ma7d:

lodsb

or al,al

jz maa2 ;ret

call mb13

jmp ma7d

ma87:

ret

ma9b:

push ax

call ma7c

maa2:

pop ax

ret

maa4:

maab:

call ma9b

ret

mab6:

mad0:

ret

mb13:

mb27:

mb5b:

push bx

push ax

mov bh,0 ;[7119]

mov ah,0eh

int 10h

pop ax

pop bx

ret

mb68:

push cx

push ax

push ax

mov cl,4

shr al,cl

call m39a3

stosb

pop ax

call m39a3

stosb

pop ax

pop cx

ret

mba1:

push ax

mov al,ah

call mb68

pop ax

call mb68

ret

mc0e:

push dx

push cx

xor dx,dx

mov cx,10000

div cx

and al,0fh

jz mc35

call mc6d

xor ax,ax

xchg dx,ax

mov cx,100

div cx

aam

call mc66

mov al,dl

aam

pop cx

pop dx

ret

mc35:

xchg dx,ax

mov cx,100

div cx

aam

test ah,0fh

jnz mc59

test al,0fh

jz mc4b

call mc6d

jmp mc5c

mc4b:

mov al,dl

aam

test ah,0fh

jnz mc60

call mc6d

jmp mc63

mc59:

call mc66

mc5c:

mov al,dl

aam

mc60:

call mc66

mc63:

pop cx

pop dx

ret

mc66:

xchg al,ah

call mc6d

mov al,ah

mc6d:

or al,30h

;  stosb

call

mb5b

ret

mc7d:

ret

mc8d:

push ax

push bx

mov bh,0 ;[m7119] ;cs:

mov ah,2

int 21h

pop bx

pop ax

ret

mc9e:

push dx

xor dx,dx

call mc8d

pop dx

ret

mca9:

push ax

push bx

mov bh,0

mov ah,3

int 10h

pop bx

pop ax

ret

mcb4:

ret

mcbe:

push cx

push dx

call mca9

or ch,30h

call mccc

pop dx

pop cx

ret

mccc:

push ax

mov ah,1

int 10h

pop ax

ret

mef8:

db 1

mef9:

db 0

mefa:

db 0

mefb:

db 0

mefc:

db 0

dw 0,0

meff:

push bp

mov bp,sp

mov ax,word ptr [bp + 4]

mov word ptr [m7692],ax

push ax

xor ax,ax

push ax

push ax

push di

push si

push cx

mov di,offset m7698

mov cx,86h

repz stosb

pop cx

call m17ad

mov di,offset m7694

call m1563

jb mf33

mov al,':'

nop

mov byte ptr [mefb],al

mov ax,[bp+4]

mov word ptr [mefc],ax

call m17de

mf33:

mov bx,offset m76ab

mov di,offset m7696

call m1563

jnb mf41

jmp m12eb ;ret

mf41:

call m1aaa

jb mf5f

cmp al,0c0h

jnb mf94

mov byte ptr [m76a6],al

mov di,offset m7698

call m1563

jb mf58

jmp mfe1

mf58:

mov dx,word ptr [m769a]

jmp m11a7

mf5f:

cmp byte ptr [si+1],'.'

jz mfbc

mov word ptr [m7694],si

mov si,word ptr [m7698]

mov word ptr [m7696],si

mov cx,word ptr [m769a]

mov di,si

sub cx,si

inc di

mov al,0

repnz scasb

dec di

mov word ptr [m7698],di

mov di,offset m7696

call m1563

jb mfb7

call m1aaa

jb mfb7

cmp al,0c0h

jb mfb7

mf94:

mov byte ptr [m76a6],al

and ax,0fh

shl ax,1

mov di,ax

or ax,ax

jz mfb1

push di

mov di,offset m7698

call m1563

pop di

jnb mfb1

mov al,2

jmp m12e3

mfb1:

mov ax,word ptr [di + offset m12f2]

push ax

ret

mfb7:

mov al,5

jmp m12e3

mfbc:  ; .

cmp byte ptr [mef8],0

jz mfb7

mov di,offset m3df9

mov cx,25h

nop

lodsw

sub dx,2

push dx

call m42f

jb mfb7

mov al,[di-1]

cbw

mov word ptr [m7505],ax

call m3e4a

jmp m12eb

mfe1:

mov al,byte ptr [m76a6]

mov di,offset m16ac

mov cx,9

repnz scasb

jnz m1000

add di,8

nop

mov al,[di]

mov byte ptr [m76a7],al

mov [bp-4],si

mov [bp-6],dx

jmp m1052

nop

m1000:

call m1684

jnb m1047

xor ah,ah

call m188b

jnb m1023

call m1671

jb m1016

call m167e

jmp m1047

m1016:

cmp byte ptr [mef8],0

jnz m1020

jmp m12e1

m1020:

call m16a3

m1023:

mov [bx],al

inc bx

mov al,byte ptr [m76a6]

cmp al,99h

jz m1037

mov di,offset m16be

mov cx,6

repnz scasb

jmp m1041

m1037:

mov si,word ptr [m769a]

mov ax,[si+1]

cmp ax,43h

m1041:

mov al,0c1h

jz m1047

mov al,0c2h

m1047:

mov byte ptr [m76a7],al

mov di,offset m769a

call m1563

jnb m1059

m1052:

mov dx,word ptr [m769c]

jmp m11ba

m1059:

mov di,offset m16c1

mov al,byte ptr [m76a6]

mov cx,4

repnz scasb

jnz m1074

mov byte ptr [m76a8],0c3h

mov [bp-4],si

mov [bp-6],dx

jmp m117d

m1074:

call m1684

jb m107f

mov byte ptr [m76a8],al

jmp m1176

m107f:

mov al,[si + 1]

cmp al,'/'

jz m10a5

cmp al,'#'

jz m10d1

cmp word ptr [m76a6],8f99h

jz m1095

jmp m112c

m1095:

cmp byte ptr [mef8],0

jnz m109f

jmp m12e1

m109f:

call m169f

jmp m10ff

nop

m10a5:

mov byte ptr [m76a8],0c0h

inc si

mov byte ptr [si],0

dec dx

call m157f

xor ah,ah

call m188b

jnb m10cb

call m15d7

jnb m10cb

cmp byte ptr [mef8],0

jnz m10c8

jmp m12e1

m10c8:

call m16a3

m10cb:

mov [bx],al

inc bx

jmp m117d

m10d1:

inc si

mov byte ptr [si],0

dec dx

call m157f

mov [bp-6],dx

mov ax,word ptr [m76a6]

cmp ax,8f99h

jnz m1106

mov byte ptr [m76a8],0c5h

mov ah,1

call m188b

jnb m10ff

cmp byte ptr [mef8],0

jnz m10fa

jmp m12e1 ;ret

m10fa:

mov al,1

call m1a5e

m10ff:

xchg ah,al

mov [bx],ax

jmp m117d

nop

m1106:

mov byte ptr [m76a8],0c4h

xor ah,ah

call m188b

jnb m1126

call m1671

jnb m1126

cmp byte ptr [mef8],0

jnz m1121

jmp m12e1

m1121:

xor al,al

call m1a5e

m1126:

mov [bx],al

inc bx

jmp m1176

nop

m112c:

call m157f

xor ah,ah

call m188b

jnb m1151

call m1671

jb m1144

call m167e

mov byte ptr [m76a8],al

jmp m1176

nop

m1144:

cmp byte ptr [mef8],0

jnz m114e

jmp m12e1

m114e:

call m16a3

m1151:

mov [bx],al

inc bx

mov al,byte ptr [m76a7]

cmp al,8dh

jnz m1171

mov al,byte ptr [m76a6]

cmp al,9eh

jz m116a

cmp al,85h

jz m116a

cmp al,99h

jnz m117d

m116a:

mov byte ptr [m76a8],0c1h

jmp m117d

m1171:

mov byte ptr [m76a8],0c2h

m1176:

cmp byte ptr [m76a6],86h

jz m1184

m117d:

mov dx,word ptr [m769e]

jmp m11a7

nop

m1184:

mov di,offset m769c

call m1563

jnb m119d

cmp byte ptr [mef8],0

jnz m1196

jmp m12e1

m1196:

mov al,2

call m23ab

jmp m11a3

m119d:

mov [bp-4],si

mov [bp-6],dx

m11a3:

mov dx,word ptr [m76a0]

m11a7:

or dx,dx

jz m11ba

cmp byte ptr [mef8],0

jnz m11b5

jmp m12e1

m11b5:

mov al,1

call m23ab

m11ba:

xor dx,dx

mov ax,word ptr [m76a7]

push ax

test al,80h

jz m11cf

cmp al,87h

ja m11cf

mov byte ptr [m76a7],80h

jmp m11de

m11cf:

mov al,ah

test al,80h

jz m11e4

cmp al,87h

ja m11e4

mov byte ptr [m76a8],80h

m11de:

add al,8

and al,7

mov dl,al

m11e4:

mov si,offset m76a6

mov cx,3

push cx ;es

mov di,offset d9dc

mov cx,240h

call m42f

mov al,[di+3]

pop word ptr [m76a7]

jnb m1208

jmp m12e1

m1208:

and al,0fh

mov byte ptr [m76a9],al

sub di,offset d9dc

shr di,1

shr di,1

mov ax,di

mov cl,9

div cl

mov cl,4

shl al,cl

or al,ah

or al,dl

mov byte ptr [m76aa],al

cmp al,85h

jnz m1232

mov ax,word ptr [m76ab]

xchg ah,al

mov word ptr [m76ab],ax

m1232:

mov al,byte ptr [m76a9]

cbw

add [bp+4],ax

mov si,[bp-4]

or si,si

jnz m1243

jmp m12eb

m1243:

mov cx,[bp-6]

cmp cx,3

jnb m125a

cmp byte ptr [mef8],0 ;1

jnz m1255

jmp m12e1

m1255:

mov al,2

jmp m12e8

m125a:

mov dx,cx

call m157f

mov ah,1

call m188b

jnb m1286

cmp ax,dx

jb m1278

call m1814

jnb m1286

cmp byte ptr [mef8],0

jz m12e1

jmp m12eb

m1278:

cmp byte ptr [mef8],0

jz m12e1

mov al,1

call m1a5e

jmp m12eb

m1286:

mov cx,[bp+4]

mov dx,word ptr [m76a7]

cmp dl,0c6h

jnz m12a8

mov byte ptr [m76ab],al

mov al,ah

xor ah,ch

and ah,0f8h

jnz m12da

mov cl,5

shl al,cl

or byte ptr [m76aa],al

jmp m12eb

m12a8:

cmp dl,0c7h

jnz m12b4

xchg ah,al

mov word ptr [m76ab],ax

jmp m12eb

m12b4:

cmp dl,0c3h

jz m12c5

cmp dh,0c3h

jz m12c5

cmp byte ptr [m76a6],86h

jnz m12da

m12c5:

sub ax,cx

mov cx,ax

cbw

cmp ax,cx

jnz m12da

mov bl,byte ptr [m76a9]

xor bh,bh

mov byte ptr [bx + offset m76a9],al

jmp m12eb

m12da:

cmp byte ptr [mef8],0

jnz m12e6

m12e1:

xor al,al

m12e3:

stc

jmp m12ec

m12e6:

mov al,9

m12e8:

call m23ab

m12eb:

clc

m12ec:

pop si

pop di

mov sp,bp

pop bp

ret

m12f2:

dw offset m155a

dw offset m1502

dw offset m1306

dw offset m1339

dw offset m13ac

dw offset m1437

dw offset m144b

dw offset m144b

dw offset m147e

dw offset m147e

m1306:

cmp byte ptr [mef8],0

jnz m131a

call m157f

mov ah,1

call m188b

jnz m131c

call m169f

m131a:

jmp m12eb ;ret

m131c:

mov cx,ax

;es [326e]

mov di,[bp-2]

mov ax,di

add ax,cx

jnb m132e

inc ax

sub cx,ax

m132e:

xor ax,ax

repnz stosb

;es=cs

mov [bp+4],di

jmp m12eb ;ret

m1339:

mov di,offset m76aa

mov word ptr [m76a7],0c4c4h

m1342:

cmp byte ptr [si],0

jz m134e

dec si

call m169f

dec si

jmp m139b

m134e:

call m1412

jz m1342

cmp ah,1ah

jz m13aa

xor ah,ah

call m188b

jnz m139b

cmp byte ptr [mef8],0

jnz m136e

call m1671

jnb m139b

jmp m12e1

m136e:

mov dx,si

m1370:

inc si

cmp byte ptr [si],0

jnz m1370

push si

inc si

sub si,dx

xchg si,dx

call m157f

call m1412

jnz m1387

pop si

jmp m1342

m1387:

xor ah,ah

call m188b

jnb m139a

push di

call m1671

jnb m1399

xor al,al

call m1a5e

m1399:

pop di

m139a:

pop si

m139b:

stosb

inc word ptr [m7692]

inc byte ptr [m76a9]

cmp word ptr [si],1a00h

jnz m1342

m13aa:

jmp m140a

m13ac:

mov word ptr [m76a7],0c5c5h

mov di,offset m76aa

m13b5:

cmp byte ptr [mef8],0

jnz m13c6

mov ah,1

call m188b

jnb m13f1

jmp m12e1

m13c6:

mov bx,si

m13c8:

inc bx

cmp byte ptr [bx],0

jnz m13c8

push bx

push cx

inc bx

sub bx,si

mov dx,bx

call m157f

mov ah,1

call m188b

jnb m13eb

push di

call m1671

jnb m13ea

mov al,1

call m1a5e

m13ea:

pop di

m13eb:

pop cx

pop si

jnb m13f1

xor ax,ax

m13f1:

xchg ah,al

stosb

inc word ptr [m7692]

inc word ptr [m7692]

inc byte ptr [m76a9]

inc byte ptr [m76a9]

cmp word ptr [si],1a00h

jnz m13b5

m140a:

xor ax,ax

mov [bp-4],ax

jmp m1232

m1412:

mov ah,[si+1]

cmp ah,27h

jz m141f

cmp al,'"'

jnz m1436

m141f:

lodsw

m1420:

lodsb

cmp al,ah

jz m1436 ;ret

cmp al,1

jnz m142b

mov al,','

m142b:

stosb

inc byte ptr [m76a9]

cmp word ptr [si],1a00h

jnz m1420

m1436:

ret

m1437:

cmp byte ptr [mef8],0

jz m146a

mov si,word ptr [m7698]

mov ah,al

call m188b

jb m1467

jmp m146f

m144b:

cmp byte ptr [mef8],0

jz m146a

mov si,word ptr [m7698]

xor ah,ah

call m188b

jnb m146d

call m15cc

jnb m146d

call m15d7

jnb m146d

m1467:

call m16a3

m146a:

jmp m12eb

m146d:

xor ah,ah

m146f:

mov word ptr [mefc],ax

mov al,byte ptr [m76a6]

mov byte ptr [mefb],al

call m17ff

jmp m12eb

m147e:

cmp byte ptr [mef8],0

jz m14a0

call m157f

mov [bp-4],si

mov [bp-6],dx

mov di,offset m7694

call m1563

mov di,si

call m157f

cmp si,di

jz m14a3

call m17ec

m14a0:

jmp m12eb

m14a3:

push si

mov si,[bp-4]

mov dx,[bp-6]

mov ah,1

call m188b

pop si

jb m14c1

push ax

inc si

call m186f

mov al,0c9h

stosb

pop ax

stosw

xor al,al

stosb

jmp m14f3

m14c1:

mov di,offset md75a

mov cx,word ptr [m203c]

add di,cx

neg cx

inc si

call maa4

mov al,'='

stosb

dec cx

mov si,[bp-4]

inc si

m14d8:

lodsb

cmp al,'$'

jnz m14e8

mov ax,word ptr [m7692]

call mba1

sub cx,4

mov al,'H'

m14e8:

stosb

or al,al

loopnz m14d8

neg cx

mov word ptr [m203c],cx

m14f3:

mov di,offset m769a

call m1563

jb m14a0 ;ret

mov al,1

jmp m12e8

m1500:

dw 0

m1502:

call m157f

mov ah,1

call m188b

jb m154a

cmp byte ptr [mef8],0

jz m151a

cmp ax,[bp+4]

jb m1535

jz m1532

m151a:

mov [bp+4],ax

mov si,word ptr [m1500]

mov bx,[si]

cmp bx,[si+2]

jz m1530

add word ptr [m1500],4

add si,4

m1530:

mov [si],ax

m1532:

jmp m12eb

m1535:

xchg ax,[bp+4]

push ax

mov al,3

call m23ab

pop ax

mov al,'H'

call mb5b

jmp m12eb

m154a:

cmp byte ptr [mef8],0

jnz m1554

jmp m12e1

m1554:

call m169f

jmp m12eb

m155a:

mov byte ptr [mef9],0ffh

clc

jmp m12eb

m1563:

mov si,[di]

mov cx,[di+2]

inc cx

sub cx,si

jb m1570

cmp cx,3

m1570:

mov dx,cx

ret

m1573:

mov di,offset m775a

mov cx,word ptr [m203a]

push dx

call m42f

ret

m157f:

push bx

xor bx,bx

m1582:

push si

push di

push cx

mov di,offset md75a

mov cx,word ptr [m203c]

m158c:

push dx

call m42f

jb m15c7

cmp cx,bx

jz m15c7

mov bx,cx

add di,dx

sub cx,dx

jbe m15c7

cmp byte ptr [di],'='

jnz m158c

inc di

dec cx

mov si,di

mov di,0ff00h

push di

mov dx,di

xor al,al

stosb

call maa4

sub dx,di

neg dx

pop si

pop cx

pop di

add sp,2

mov al,[si+1]

call m3a04

jb m1582

pop bx

ret

m15c7:

pop cx

pop di

pop si

pop bx

ret

m15cc:

call m1abf

jnb m15d6 ;ret

m15d1:

mov ah,0c6h

call m1660

m15d6:

ret

m15d7:

call m1ab2

jnb m15d6 ;ret

mov ah,0c7h

call m1660

jnb m15d6

push bx

push dx

sub dx,2

mov bx,dx

cmp byte ptr [bx+si-1],'.'

jnz m1635

mov al,[bx+si]

call m39c6

jb m1635

cmp al,7

ja m1635

mov byte ptr [bx+si-1],0

push ax

xor ah,ah

call m188b

jnb m1639

call m1abf

jb m1615

mov ch,al

test ch,7

jnz m1634

jmp m162b

m1615:

call m15d1

jb m1634

cmp al,20h

jb m1634

cmp al,2fh

ja m1634

mov ch,al

and ch,1fh

mov cl,3

shl ch,cl

m162b:

pop ax

add al,ch

mov byte ptr [bx+si-1],'.'

jmp m1636

m1634:

pop ax

m1635:

stc

m1636:

pop dx

pop bx

ret

m1639:

mov byte ptr [si],'.'

pop dx

and dl,7

call m1649

jb m1635

add al,dl

jmp m1636

m1649:

cmp al,80h

jnb m165d

cmp al,20h

jb m165d

cmp al,2fh

ja m165e

and al,0fh

shl al,1

shl al,1

shl al,1

m165d:

ret

m165e:

stc

ret

m1660:

call m1573

jb m166e ;ret

add di,dx

cmp ah,[di]

jnz m166f

mov al,[di+1]

m166e:

ret

m166f:

stc

ret

m1671:

call m15cc

mov ah,0c2h

jnb m167d ;ret

call m15d7

mov ah,0c1h

m167d:

ret

m167e:

mov [bx],al

inc bx

mov al,ah

ret

m1684:

call m157f

;es

mov di,offset dd76

mov cx,62h

;cs  es=[3264]

push dx

call m42f

jb m169d

;es

mov al,[di-1]

m169d:

;es

ret

m169f:

mov al,6

jmp m16a5

m16a3:

mov al,4

m16a5:

inc si

call m23b1

xor ax,ax

ret

m16ac:

db 91h,94h,95h,96h,0a8h,81h,84h,97h,98h

;16b5:

db 0c3h,0c3h,0c3h,0c3h,0c3h

;16ba

db 0c6h,0c6h,0c7h,0c7h

m16be:

db 88h,87h,0a7h

m16c1:

db 90h,8fh,93h,8ch

m16c5:

xor ax,ax

mov byte ptr [mefa],al

mov bx,offset m7694

mov [bx],di

mov [bx+2],ax

mov bx,ax

mov dx,ax

cmp cx,130

jbe m16e8

sub cx,130

mov bx,cx

mov cx,130

m16e8:

stosb

push di

jcxz m16f1

m16ec:

lodsb

cmp al,20h

ja m16fa

m16f1:

cmp al,0dh

jz m1709

loop m16ec

jmp m178c

m16fa:

call m39e4 ;a-z

jnb m1731

cmp al,'.'

jz m1731

cmp al,';'

jz m1709

mov dl,80h

m1709:

jmp m178b

m170c:

lodsb

cmp al,20h

jbe m173e

m1711:

call m39e4 ;a-z

jnb m172e

cmp al,','

jz m1779

cmp al,':'

jz m176d

cmp al,';'

jz m178b

cmp al,27h

jz m174c

cmp al,'"'

jz m174c

cmp al,'='

jz m1738

m172e:

call m17a6

m1731:

stosb

xor dl,dl

m1734:

loop m170c

jmp m178c

m1738:

mov ax,3d00h ;=

stosw

jmp m1742

m173e:

cmp al,0dh

jz m178b

m1742:

mov byte ptr [di],0

or dx,4001h

jmp m1734

m174c:

mov ah,al

call m17a6

jmp m1765

m1753:

lodsb

cmp ah,al

jz m1731

cmp al,','

jz m1763

cmp al,0dh

jnz m1765

dec cx

jmp m1768

m1763:

mov al,1

m1765:

stosb

loop m1753

m1768:

mov al,ah

stosb

jmp m178c

m176d:

or dh,dh

jnz m1779

or dh,80h

mov word ptr [m7696],di

m1779:

stosb

xor dl,dl

jmp m1787

m177e:

lodsb

cmp al,20h

ja m1711

cmp al,0dh

jz m178b

m1787:

loop m177e

jmp m178c

m178b:

dec cx

m178c:

add cx,bx

jcxz m1797

m1790:

lodsb

and al,7fh

cmp al,0ah

loopnz m1790

m1797:

shl dl,1

pop dx

jb m179e

cmp di,dx

m179e:

stosb

mov word ptr [di-1],1a00h ;end

ret

m17a6:

test dl,1

jz m17ac

inc di

m17ac:

ret

m17ad:

mov bx,offset m7696

xor ax,ax

mov di,si

cmp [bx],ax

jz m17bf

mov di,[bx]

stosb

add cx,si

sub cx,di

m17bf:

mov si,di

dec si

cmp bx,offset m76a0

ja m17cc

mov [bx],si

inc bx

inc bx

m17cc:

repnz scasb

jnz m17da

jcxz m17da

mov byte ptr [di-1],0

mov al,','

jmp m17bf

m17da:

dec di

mov [bx],di

ret

m17de:

call m1573

jb m180a

add di,dx

cmp byte ptr [di],0

jz m180e

sub di,dx

m17ec:

mov al,7

sub si,di

inc si

call m23b1

cmp byte ptr [mef8],0

jnz m17fe ;ret

call m556

m17fe:

ret

m17ff:

mov di,offset m7694

call m1563

call m1573

jnb m17ec

m180a:

inc si

call m186f

m180e:

mov si,offset mefb

movsw

movsw

ret

m1814:

push di

call m1573

jb m1835

add di,dx

mov al,[di]

or al,al

jz m1854

call m1860

jz m182f

sub di,dx

call m17ec

jmp m185d ;ret

nop

m182f:

mov ax,[di+1]

pop di

clc

ret

m1835:

cmp byte ptr [mef8],0

jz m185d

mov al,[si+1]

call m39e4

jnb m1849

call m16a3

jmp m185d ;ret

m1849:

inc si

call m186f

xor ax,ax

mov [di],ax

mov [di+2],ax

m1854:

inc di

mov ax,di

mov dx,1

call m1a88

m185d:

pop di

stc

ret

m1860:

cmp al,':'

nop

jz m186e ;ret

cmp al,0c5h

jz m186e

cmp al,0c9h

jz m186e

m186e:

ret

m186f:

mov di,offset m775a

add di,word ptr [m203a]

m1876:

lodsb

stosb

inc word ptr [m203a]

dec cx

cmp al,20h

ja m1876

mov byte ptr [di-1],0

add word ptr [m203a],4

ret

m188b:

push bp

push bx

push cx

push di

push dx

push si

xor bp,bp

xor bx,bx

inc si

mov al,[si]

push ax

cmp al,27h

jz m18e3

cmp al,'"'

jz m18e3

cmp al,'L'

jz m18be

cmp al,'H'

jnz m18f8

cmp word ptr [si+1],'GI'

jnz m18f8

cmp word ptr [si+3],'(H'

;high

jnz m18f8

add si,5

mov ah,5

jmp m18d0

m18be:

cmp word ptr [si+1],'WO' ;low

jnz m18f8

cmp byte ptr [si+3],'('

jnz m18f8

add si,4

mov ah,3

m18d0:

mov di,si

mov al,')'

mov cx,dx

repnz scasb

jnz m193c

cmp word ptr [di-1],')'

jnz m193c

pop dx

jmp m18f5

m18e3:

lodsw

mov dx,ax

lodsw

cmp al,dl

jnz m193c

or ah,ah

jnz m193c

mov al,dh

pop dx

jmp m1a11 ;ret

m18f5:

mov al,[si]

push ax

m18f8:

cmp al,'-'

jz m1900

cmp al,'+'

jnz m1901

m1900:

inc si

m1901:

mov al,[si]

cmp al,'$'

jnz m190f

inc si

mov dx,word ptr [m7692]

jmp m199e

m190f:

mov dx,si

m1911:

lodsb

or al,al

jz m1922

cmp al,'-'

jz m1922

cmp al,'+'

jz m1922

cmp al,')'

jnz m1911

m1922:

mov ah,[si-2]

xchg si,dx

mov al,[si]

call m3a04

jnb m193f

sub dx,si

inc dx

call m1a2f

jnb m199e

mov ax,dx

pop dx

jmp m19cf

m193c:

jmp m19cc

m193f:

xor dx,dx

xor al,al

xchg al,ah

call m39ec

cmp al,'H'

jz m1987

cmp al,'B'

jz m196e

mov cx,10

m1953:

lodsb

cmp al,'0'

jnb m195b

dec si

jmp m199e

m195b:

call m39ec

cmp al,'D'

jz m199e

call m3a04

jb m19cc

call m1a20

jnb m1953

jmp m19d3

m196e:

lodsb

call m39ec

cmp al,'B'

jz m199e

call m3a0a

jb m19cc

and al,1

shl dx,1

jb m19d3

add dx,ax

jb m19d3

jmp m196e

m1987:

mov cx,10h

m198a:

lodsb

call m39ec

cmp al,'H'

jz m199e

call m39fa

jb m19cc

call m1a20

jnb m198a

jmp m19d3

m199e:

mov ax,dx

pop dx

push dx

cmp dl,'-'

mov dx,0

jnz m19ae

neg ax

not dx

m19ae:

add bx,ax

adc bp,dx

pop ax

mov al,[si]

or al,al

jz m19ee

cmp al,'0'

jnb m19cd

cmp al,')'

jz m19ee

cmp al,'-'

jz m19c9

cmp al,'+'

jnz m19cd

m19c9:

jmp m18f5

m19cc:

pop dx

m19cd:

xor ax,ax

m19cf:

pop si

stc

jmp m1a1a

m19d3:

mov al,[si]

or al,al

jz m19dc

inc si

jmp m19d3

m19dc:

pop dx

m19dd:

cmp byte ptr [mef8],0

jz m19cd

pop dx

push si

mov si,dx

call m169f

pop si

jmp m1a1a

m19ee:

xchg bx,ax

or bh,bh

jnz m1a01

cwd

cmp dx,bp

jnz m19dd

or ah,ah

jz m1a11

mov dx,0ff80h

jmp m1a0d

m1a01:

or bp,bp

jz m1a11

cwd

cmp dx,bp

jnz m19dd

mov dx,8000h

m1a0d:

cmp ax,dx

jb m19dd

m1a11:

test bh,4

jz m1a18

mov al,ah

m1a18:

pop dx

clc

m1a1a:

pop dx

pop di

pop cx

pop bx

pop bp

ret

m1a20:

call m39c6

push ax

mov ax,dx

mul cx

pop dx

jb m1a2e ;ret

xchg dx,ax

add dx,ax

m1a2e:

ret

m1a2f:

push si

mov di,0ff80h

push di

mov cx,dx

sub cx,2

xor ax,ax

stosb

repnz movsb

stosb

pop si

call m1573

jb m1a52

add di,dx

mov al,[di]

or al,al

jz m1a52

call m1860

jz m1a55

m1a52:

stc

pop si

ret

m1a55:

pop si

add si,dx

dec si

dec si

mov dx,[di+1]

ret

m1a5e:

push ax

mov di,offset md75a

mov cx,word ptr [m203c]

push dx

call m42f

jb m1a70

mov ax,di

jmp m1a81

m1a70:

add di,cx

push di

neg cx

movsb

dec cx

call maa4

neg cx

mov word ptr [m203c],cx

pop ax

m1a81:

pop dx

call m1a88

xor ax,ax

ret

m1a88:

push ax

mov di,word ptr [m3278]

add di,word ptr [m2044]

mov ax,word ptr [m2040]

stosw

pop ax

stosw

mov ax,word ptr [m7692]

stosw

mov ax,word ptr [m76a7]

stosw

mov al,dl

stosb

add word ptr [m2044],9

ret

m1aaa:

mov di,offset dc1c

mov cx,15ah

jmp m1ac6

m1ab2:

mov di,offset d5dc

add di,word ptr [m3e2a]

mov cx,word ptr [m3e2c]

jmp m1ac6

m1abf:

mov di,offset d5dc

mov cx,word ptr [m3e2a]

m1ac6:

push dx

call m42f

jb m1ad6

mov al,[di-1]

m1ad6:

ret

m1ad7:

dw 0,0,0

m1dfa:

xor bx,bx

m1dfc:

push cx

push dx

mov ax,di

mov al,20h

call m1e38

pop dx

inc dh

pop cx

loop m1dfc

ret

m1e38:

push bx

mov cx,8

m1e3c:

mov al,[bx+si]

inc bl

mov al,20h

loop m1e3c

pop bx

mov cx,8

m1e4e:

mov al,[bx+si]

inc bl

cmp al,20h

jnb m1e58

mov al,'.'

m1e58:

;

call mb13

loop m1e4e

mov al,20h

;

call mb13

add di,8

ret

m1f43:

mov al,4fh

test byte ptr [m7504],1

nop

jnz m1f50

mov al,byte ptr [m7152]

m1f50:

mov byte ptr [m7150],al

ret

m203a:

dw 0

m203c:

dw 0

m203e:

db 12 dup (0)

dw 0

m2040:

dw 0

m2042:

dw 0

m2044:

dw 0

m2046:

dw 0

m2048:

dw 0

m204a:

mov si,offset m5e3d

call ma9b

mov word ptr [m5e54],offset m5e3c

call m5b28 ;keybord

jb m20ba

mov word ptr [m7315],bx

mov di,offset m7308

mov si,bx

call ma70

mov byte ptr [di],0

mov di,offset m3da0

mov si,bx

call ma70

mov cx,offset m3db1

sub cx,di

mov al,20h

repz stosb

call m5e6f ;open file

jnb m2093

mov si,dx

jmp m21e0

m2093:

mov word ptr [m7481],ax

mov si,offset m5e38 ; hex

call ma9b

mov al,20h

mov si,offset m7484 ;file

call ma9b

mov si,offset da2

jmp m20c2

;jnb

m20ba:

jmp m6e5d

m20c2:

mov si,offset m7610

mov di,offset m771e

call m2543

mov word ptr [m7315],di

mov si,offset m5e37

call m63d0

mov si,offset m771e

call ma9b

m20e4:

mov dx,offset m771e

mov si,offset m72f4

call ma9b

call m63b8

xor ax,ax

mov byte ptr [m775a],al

mov byte ptr [md75a],al

mov word ptr [m203a],1

mov word ptr [m203c],1

mov byte ptr [m7510],al

mov di,offset m203e

mov cx,12

repnz stosb

mov byte ptr [mef8],1

mov byte ptr [mef9],al

mov bx,offset de5

mov word ptr [m1500],bx

mov [bx],ax

mov [bx+2],ax

m2133:

cmp byte ptr [mef9],0ffh

jz m21a2

mov si,word ptr [m326a]

mov cx,word ptr [m203e]

or ch,ch

jnz m2165

mov

di,0e000h

mov word ptr [m326a],di

mov di,word ptr [m326a]

call m6302  ; read file

mov word ptr [m203e],cx

jnb m2165

jmp m21da

nop

m2165:

inc word ptr [m2040]

jcxz m21a2

mov byte ptr [m76a6],0ffh

mov di,word ptr [m3266]

call m16c5

mov word ptr [m326a],si

mov word ptr [m203e],cx

mov al,0

jb m219d

jz m21c8

mov si,dx

mov cx,di

sub cx,si

nop

push word ptr [m2046]

call meff

pop word ptr [m2046]

jnb m21a5

m219d:

call m23ab ; err

jmp m2133

m21a2:

jmp m21ec

m21a5:

mov ax,word ptr [m2046]

mov bx,word ptr [m1500]

mov [bx + 2],ax

mov si,offset m76a9

lodsb

xor ah,ah

mov cx,ax

mov ax,word ptr [m2046]

sub ax,cx

mov di,word ptr [m326e]

add di,ax

repnz movsb

cmp di,ax

jb m21d5

m21c8:

cmp word ptr [m2042],0

ja  m21d2

call m247a

m21d2:

jmp m2133

m21d5:

mov al,0ah

call m23ab

m21da:

call mc9e

call m503

m21e0:

mov word ptr [m203a],1

jmp m20ba

m21ec:

call m5e79 ;close file

cmp word ptr [m2042],0

ja m2224

mov bx,word ptr [m1500]

add bx,4

mov [bx],ax

mov [bx+2],ax

mov ax,word ptr [m2040]

shl ax,1

mov word ptr [m203e],ax

mov cx,word ptr [m2044]

jcxz m2224

mov di,word ptr [m326e]

mov si,word ptr [m3278]

m221a:

push cx

call m22d2

pop cx

sub cx,8

loop m221a

m2224:

mov si,offset m72e2 ;Error messages

call ma9b

mov ax,word ptr [m2042]

call mc0e

mov dx,offset m771e

call m5ebd ;crat file

m223d:

jb m21e0

mov bx,ax

mov bp,offset de5

cmp word ptr [m2042],0

jz m2280

nop

m2280:

nop

call m249d  ; hex file

jb m223d ;2264

mov dx,offset m775a

mov ax,word ptr [m203e]

mov cx,ax

mov di,word ptr [m3274]

mov dx,di

stosw

mov si,di

call m638f

call m5e91

jb m223d ;2264

call m5e7e ;close file

mov word ptr [m203a],1

mov si,offset m7408

call ma7c

jmp m21da

m22d2:

lodsw

mov word ptr [m2040],ax

lodsw

mov bx,ax

lodsw

mov di,ax

mov cx,di

lodsw

mov dx,ax

lodsb

cmp bx,offset md75a

jnb m2309

cmp byte ptr [bx-1],0

jnz m2342

dec bx

m22f7:

dec bx

cmp byte ptr [bx-1],0

jnz m22f7

mov ax,8

push si

mov si,bx

call m23b1

pop si

ret

m2309:

push si

push dx

push di

mov si,bx

mov word ptr [m7692],cx

mov ah,al

push ax

call m188b

pop bx

jnb m2322

call m169f

stc

m2322:

pop di

pop dx

pop si

jb m2341

cmp dh,0c4h

jnz m2344

cmp bh,1

jz m2344

cmp dl,0c4h

jz m233e

inc di

cmp dl,0c2h

jnz m233e

inc di

m233e:

mov [di],al

m2341:

ret

m2342:

mov ax,[bx]

m2344:

cmp dx,0c5c5h

jnz m2350

xchg ah,al

mov [di],ax

ret

m2350:

cmp dl,0c6h

jnz m236d

add cx,2

mov [di+1],al

mov al,ah

xor ah,ch

and ah,0f8h

jnz m23a3

mov cl,5

shl al,cl

or [di],al

ret

m236d:

cmp dl,0c7h

jz m2378

cmp dx,0c58fh

jnz m237f

m2378:

xchg ah,al

mov [di+1],ax

ret

m237f:

mov bx,1

add cx,2

cmp dl,0c3h

jz m2396

cmp dh,0c3h

jnz m2394

cmp dl,89

jbe m2396

m2394:

inc bx

inc cx

m2396:

sub ax,cx

mov cx,ax

cbw

cmp ax,cx

jnz m23a3

mov [bx+di],al

ret

m23a3:

push si

mov al,9

call m23ab

pop si

ret

m23ab:

mov si,offset m7610

mov byte ptr [si],0

m23b1:

or al,al

jnz m23bd

cmp byte ptr [mefa],0

jz m23bd

ret

m23bd:

push bx

push si

cbw

mov bx,ax

cmp byte ptr [mef8],0

jz m23e8

push bx

call mad0

pop bx

jnb m23d3

jmp m21e0

m23d3:

inc byte ptr [mefa]

inc word ptr [m2042]

mov ax,word ptr [m2040]

call mc7d

mov al,20h

jmp m23f8

m23e8:

mov al,7

call mb5b

mov dx,word ptr [m7176]

add dx,102h

m23f8:

mov si,bx

shl si,1

mov si,[si + offset m74d2]

call maab

pop si

push cx

mov cx,12h

push si

call ma87

call mc9e

pop si

cmp byte ptr [mefb],0

jz m2477

push di

mov di,word ptr [m2048]

mov byte ptr [m712e],1

nop

mov ax,0a0dh

stosw

mov ax,word ptr [m2040]

call mc7d

mov al,20h

stosb

xchg si,bx

shl si,1

mov si,[si + offset m74d2]

call ma70

nop

mov si,bx

call ma70

mov word ptr [m2048],di

pop di

cmp word ptr [m2042],100 ;64h

jb m2477

mov byte ptr [mef9],0ffh

call mad0

mov si,16h

mov si,[si + offset m74d2]

call maab

m2477:

pop cx

pop bx

ret

m247a:

mov di,word ptr [m3274]

add di,word ptr [m2040]

add di,word ptr [m2040]

mov ax,-1

cmp byte ptr [m76a6],0c1h

ja m249b

mov ax,word ptr [m2046]

mov cl,byte ptr [m76a9]

xor ch,ch

sub ax,cx

m249b:

stosw

ret

m249d:

mov ax,word ptr [m326e]

;es

m24a2:

mov si,[bp]

mov cx,[bp+2]

add bp,4

sub cx,si

mov di,word ptr [m3278] ;es

jcxz m24c0

call m24ca

call m2535  ;write file

jb m24c9  ;ret

jmp m24a2

m24c0:

call m24f9

mov al,1ah

stosb

call m2535

m24c9:

ret

m24ca:

cmp cx,1000h

jbe m24da

sub bp,4

mov cx,1000h

add [bp],cx ;cs

m24da:

push cx

shr cx,1

shr cx,1

shr cx,1

shr cx,1

jcxz m24ef

m24e5:

push cx

mov cx,10h

call m24f9

pop cx

loop m24e5

m24ef:

pop cx

and cx,0fh

jcxz m24f8

call m24f9

m24f8:

ret

m24f9:

mov al,':'

stosb

jcxz m2523

mov al,cl

mov dl,al

call mb68

mov ax,si

add dl,al

add dl,ah

call mba1

mov ax,3030h

stosw

m2512:

lodsb

add dl,al

call mb68

loop m2512

mov al,dl

neg al

call mb68

jmp m2530

m2523:

mov ax,3030h

stosw

stosw

stosw

inc ah

stosw

mov ax,'FF'

stosw

m2530:

mov ax,0a0dh

stosw

ret

m2535:

mov dx,word ptr [m3278]

mov cx,di

sub

cx,word ptr [m3278]

call m5e91  ;write file

ret

m2542:

stosb

m2543:

lodsb

or al,al

jz m2552

cmp si,word ptr [m7315]

jb m2542

cmp al,'.'

jnz m2542

m2552:

ret

m2559:

m2a9f:

m2aa5:

ret

m2bde:

jmp m2aa5

m2be1:

mov word ptr [m7481],ax

mov si,offset m7356

call ma9b

mov di,word ptr [m713c]

call m2ccd

mov di,offset m713c

mov bp,di

mov ax,[di]

inc di

inc di

add ax,[di]

dec ax

stosw

stosw

stosw

mov bx,word ptr [m7481]

call m249d

jmp m2a9f

m2ccd:

ret

m3266:

dw offset m7610

dw 0

m326a:  ; in file buff

dw 0e000h

m326e:

dw 0

dw 0,0

m3274:

dw e3274

m3278:  ; hex file

buff

dw 0d000h ;offset ddd0 ;0,0

m38b7:

mov si,offset m745a ; block top

call ma9b

mov si,offset d28

m38c0:

call m641  ; keybord

jb m38f5

or cx,cx

jz m38f4

lodsb

;m38ca:

mov cl,4

xor dx,dx

xor ax,ax

m38d0:

lodsb

or al,al

jz m38f0

call m39ec

call m39c6

jnb m38e3

cmp al,'H'

jz m38f0

jmp m38f5

m38e3:

test dh,0f0h

jnz m38f5

shl dx,cl

add dx,ax

jb m38f5

jmp m38d0

m38f0:

or cx,cx

mov ax,dx

m38f4:

ret

m38f5:

stc

ret

m39a3:

and al,0fh

add al,90h

daa

adc al,40h

daa

ret

m39ac:

push cx

push ax

call m39c6

jb m39c3

mov cl,4

shl al,cl

xchg ah,al

call m39c6

jb m39c3

or al,ah

pop cx

pop cx

ret

m39c3:

pop ax

pop cx

ret

m39c6:

push ax

call m39ec

cmp al,'0'

jb m39e1

cmp al,'9'

jbe m39dc

cmp al,'A'

jb m39e1

cmp al,'F'

ja m39e1

sub al,7

m39dc:

and al,0fh

inc sp

inc sp

ret

m39e1:

pop ax

stc

ret

m39e4:

cmp al,'A'

jb m39f8

cmp al,'Z'

jbe m39f6

m39ec:

cmp al,'a'

jb m39f8

cmp al,'z'

ja m39f8

and al,5fh

m39f6:

clc

ret

m39f8:

stc

ret

m39fa:

cmp al,'F'

ja m3a12

cmp al,'A'

jb m3a04

m3a02:

clc

ret

m3a04:

cmp al,'9'

ja m3a12

jmp m3a0e

m3a0a:

cmp al,'1'

ja m3a12

m3a0e:

cmp al,'0'

jnz m3a02

m3a12:

stc

ret

m3a14:

dw 0

m3a16:

dw 6 ;5

m3a18:

dw 14 ;12

m3a1a:

dw 20 ;18

dw 40 ;25h

;m3a1e:

db 0

m3a1f:

dw 0

dw 0

m3a21:

push bp

mov bp,sp

mov ax,[bp+4]

push ax

push si

push dx

push cx

mov dx,ax

mov word ptr [m3a14],di

call m3cd9

mov ax,dx

call mba1

m3a4e:

sub dx,si

lodsb

mov byte ptr [m76aa],al

mov di,word ptr [m3a14]

add di,word ptr [m3a16]

call mb68

m3a66:

call m3d3c

mov ax,[bx+2]

mov bx,[bx]

mov word ptr [m76a6],bx

mov word ptr [m76a8],ax

m3a7c:

dec ah

jz m3a8d

lodsb

call mb68

jmp m3a7c

m3a8d:

add si,dx

mov [bp+4],si

mov cx,word ptr [m3a14]

add cx,word ptr [m3a18]

cmp di,cx

jnb m3aa0

mov di,cx

m3aa0:

mov al,byte ptr [m76a6]

call m3cee

mov al,20h

stosb

mov ax,word ptr [m3a14]

add ax,word ptr [m3a1a]

cmp di,ax

jnb m3ab6

mov di,ax

m3ab6:

mov al,byte ptr [m76a9]

cbw

mov si,[bp-4]

add [bp-4],ax

inc si

mov al,byte ptr [m76a7]

or al,al

jnz m3acb

jmp m3bd8

m3acb:

mov dl,al

call m3cf7

cmp dl,87h

ja m3ae2

mov al,byte ptr [m76aa]

and al,7

or al,'0'

mov [di-1],al

m3ae0:

jmp m3b5a

m3ae2:

cmp dl,0c1h

jb m3ae0

lodsb

jnz m3af0

call m3c17

jmp m3b5a

nop

m3af0:

cmp dl,0c2h

jnz m3b05

cmp byte ptr [m76aa],85h

jnz m3b00

lodsb

sub si,2

m3b00:

call m3c60

jmp m3b5a

m3b05:

cmp dl,0c3h

jnz m3b10

cbw

add ax,[bp+4]

jmp m3b30

m3b10:

cmp dl,0c6h

jnz m3b28

mov ah,byte ptr [m76aa]

mov cl,5

shr ah,cl

mov dx,[bp+4]

and dx,0f800h

add ax,dx

jmp m3b30

m3b28:

cmp dl,0c7h

jnz m3b5a

mov ah,al

lodsb

m3b30:

mov word ptr [m3a1f],ax

cmp ax,[bp-2]

jnz m3b3c

mov al,24h

jmp m3b56

m3b3c:

call m3c0c

call mba1

mov al,'H'

m3b56:

stosb

jmp m3c05 ;ret

m3b5a:

mov al,byte ptr [m76a8]

or al,al

jnz m3b64

jmp m3bd8

nop

m3b64:

mov dl,al

mov al,','

stosb

mov al,dl

call m3cf7

cmp dl,87h

ja m3b81

mov al,byte ptr [m76aa]

and al,7

or al,30h

mov [di-1],al

jmp m3bd8

nop

m3b81:

cmp dl,0c0h

jb m3bd8

ja m3b8d

mov byte ptr [di],2fh

inc di

m3b8d:

lodsb

cmp dl,0c1h

ja m3b98

call m3c17

jmp m3bd8

m3b98:

cmp dl,0c2h

jnz m3ba2

call m3c60

jmp m3bd8

m3ba2:

cmp dl,0c3h

jnz m3bc3

m3ba7:

cbw

add ax,[bp+4]

mov word ptr [m3a1f],ax

cmp ax,[bp-2]

jnz m3bb7

mov al,'$'

jmp m3c04

m3bb7:

jmp m3bfc ;

jz m3bfc

call m3c95

jmp m3bf5

m3bc3:

cmp dl,0c4h

jnz m3be5

mov byte ptr [di],'#'

inc di

mov ah,al

call m3c0c

call mb68

mov al,'H'

stosb

m3bd8:

cmp byte ptr [m76a6],86h

jnz m3c05

mov al,','

stosb

lodsb

jmp m3ba7

m3be5:

cmp dl,0c5h

jnz m3bd8

mov byte ptr [di],'#'

inc di

mov ah,al

lodsb

call m3c79

m3bf5:

jb m3bfc

call m3cd1

jmp m3c05

m3bfc:

call m3c0c

call mba1

mov al,'H'

m3c04:

stosb

m3c05:

pop cx

pop dx

pop si

mov sp,bp

pop bp

ret

m3c0c:

cmp ah,0a0h

jb m3c16 ;ret

;es

mov byte ptr [di],'0'

inc di

m3c16:

ret

m3c17:

xor ah,ah

call m3c87

jb m3c22

call m3cd1

ret

m3c22:

jb m3c2c

call m3d00

jnz m3c2c

ret

m3c2c:

push ax

and al,0f8h

cmp al,80h

jnb m3c3b

shr al,1

shr al,1

shr al,1

add al,20h

m3c3b:

call m3c4b

pop ax

jb m3c68

and al,7

or al,30h

mov ah,al

mov al,'.'

stosw

ret

m3c4b:

call m3c80

jb m3c54

call m3cd1

ret

m3c54:

cmp al,80h

jb m3c5e

call m3d0e

jnz m3c5e

ret

m3c5e:

stc

ret

m3c60:

xor ah,ah

call m3c4b

jb m3c68

ret

m3c68:

mov ah,al

call m3c0c

call mb68

mov al,'H'

stosb

ret

m3c74:

db 0

m3c75:

db ':'

m3c76:

db 0,0,0,0

m3c79:

db 0

db 0c6h,0c6h

m3c80:

mov byte ptr [m3c75],0c6h

jmp m3c8c

m3c87:

mov byte ptr [m3c75],0c7h

m3c8c:

;  cmp byte ptr [m3a1e],0

;  jnz m3c9a

stc

ret

m3c95:

mov byte ptr [m3c75],':'

;m3c9a:

push si

push cx

push di

push ax

mov word ptr [m3c76],ax

mov si,offset m3c74

mov di,offset m775a

mov cx,5

push cx

mov cx,word ptr [m203a]

call m42f

jnb m3cb9

pop ax

pop di

pop cx

pop si

ret

m3cb9:

pop ax

mov ax,cx

mov cx,word ptr [m203a]

sub cx,ax

m3cc2:

cmp byte ptr [di-1],0

jz m3ccb

dec di

loop m3cc2

m3ccb:

mov ax,di

pop di

pop cx

pop si

ret

m3cd1:

push si

mov si,ax

call ma70

pop si

ret

m3cd9:

push di

push cx

mov cx,word ptr [m7150]

xor ch,ch

sub cl,2

mov al,20h

repnz stosb

mov [di],cl

pop cx

pop di

ret

m3cee:

push di

mov di,offset dc1c

mov cx,15ah

jmp m3d16

m3cf7:

push di

mov di,offset dd76

mov cx,62h

jmp m3d16

m3d00:

push di

mov di,offset d5dc

add di,word ptr [m3e2a]

mov cx,word ptr [m3e2c]

jmp m3d16

m3d0e:

push di

mov di,offset d5dc

mov cx,word ptr [m3e2a]

m3d16:

repnz scasb

jnz m3d2f

pop cx

push si

mov si,di

inc si

mov di,cx

call m3d31

pop si

xor al,al

ret

m3d2f:

pop di

ret

m3d31:

call ma70

ret

m3d3c:

mov ah,al

and ax,0f00fh

mov cl,4

shr ah,cl

mov bl,al

test bl,8

jz m3d4e

mov bl,8

m3d4e:

mov al,9

mul ah

xor bh,bh

add bx,ax

shl bx,1

shl bx,1

add bx,offset d9dc

ret

m3da0:

db 20 dup (20h)

m3db1:

dw 0,0,0

m3db9:

db 80 dup (8)

m3df9:

dw 0

m3e2a:

dw 0

m3e2c:

dw 0

m3e4a:

dw 0

m42d9:

mov si,offset m5e38 ;HEX

call ma9b

mov word ptr [m5e54],offset m5e37 ; .

call m5b28  ;keybord

jnb m42f2

jmp m6e5d

m42f2:

mov word ptr [m7315],bx

call m5e6f

jnb m4303

jmp m6e5d

m4303:

mov word ptr [m7481],ax

xor cx,cx

call m62f6  ;read file

mov word ptr [m203e],cx

jb m4315

jmp m431e

m4313:

m4315:

jmp m43dc

m431e:

call m63b8

xor ax,ax

mov word ptr [m5ed2],ax

mov di,word ptr [m326a]

call m49c0

call m49bc

call m63da

jb m4313

mov word ptr [m2044],0

jmp m48ac

m43dc:

jmp m6e5d

m488b:

db 0

m488c:

db '  ORG  ',0

m489d:

db '  END',0dh,0ah,1ah,0

dw 0,0,0

m48ac:  ;out file

mov ax,0e0dh

int 10h

mov ax,0e0ah

int 10h

mov si,offset m5e3f ;xxx.txt

m5e3d

call ma9b

mov word ptr [m5e54],offset m5e50

call m5b28  ; keybord

call m5eb8 ;crate file

jb m48fd

mov word ptr [m7481],ax

mov

si,word ptr [m7142] ;xor si,si

m48d1:

mov word ptr [m326a],si

cmp si,word ptr [m7144]

jnb m48e5

nop

call m4900

jnb m48d1

m48e0:

jmp m48fd

m48e5:

mov bx,word ptr [m7481]

mov cx,22 ;14 ;e

mov dx,offset m489d

call m5e91 ;write file

jb m48e0

call m5e7e ;close file

mov word ptr [m7481],0

m48fd:

mov

byte ptr [m488b],0

jmp

m6e5d

m4900:

mov di,offset de5

mov cx,100

mov si,word ptr [m326a]

push si

repnz movsb

mov si,offset de5

pop ax

;  add ax,word ptr [m7142]

mov di,offset md75a

m492d:

cmp byte ptr [m488b],0

jnz m4971

mov byte ptr [m488b],1

push si

push ax

mov si,offset m488c ; 20 20 ORG

call ma70

call m3c0c

call mba1

mov al,'H'

stosb

mov ax,0a0dh

stosw

pop ax

pop si

m4971:

push ax

nop

nop

call m3a21

m498a:

mov ax,0a0dh

stosw

pop ax

m498f:

cmp si,offset d1df

ja m4997

jmp m492d

m4997:

sub si,offset de5

add si,word ptr [m326a]

mov dx,offset md75a

mov cx,di

sub cx,dx

mov bx,word ptr [m7481]

call m5e91 ;write file

ret

m49bc:

mov di,word ptr [m326e]

m49c0:

mov cx,88 ;-1

repnz stosb

stosb

ret

m4eb0:

dw 0,0,0,0,0

m5357:

ret

m5b28:

mov si,offset m7483 ; file

jmp m5b30

m5b2d:

mov si,offset m7484 ;file

m5b30:

call ma9b

xor dx,dx

mov si,offset da2

call m641 ; keybord

jb m5bb8 ;ret

m5b4b:

call m5c35

mov word ptr [m5e52],bx

mov si,bx

mov byte ptr [md75a],0

mov word ptr [md75b],0

ret

m5b98:

mov al,'.'

repnz scasb

jz m5ba0  ; ret

jcxz m5ba3

m5ba0:

jmp m5c31

m5ba3:

cmp [di],al

jz m5ba0

mov si,word ptr [m5e54]

call ma70

xor al,al

stosb

jmp m5b4b

m5bb3:

m5bb8:

stc

ret

m5bba:

cmp byte ptr [md75a],1

jb m5bb3

jmp m5b4b

m5c31:

call m5c35

ret

m5c35:

mov si,offset da4

mov di,offset m7610

mov cx,40h

call m379

ret

m5c90:

ret

;m5ced:

mov si,offset m75ae

mov ax,[si]

cmp al,'.'

jz m5d13

m5cf7:

mov si,offset m75a5

mov al,[si]

test al,10h

jnz m5d09

test al,0eh

jnz m5d13

;  call m5def

jb m5d13

m5d09:

mov si,offset m75ae

;call m5dc4

inc byte ptr [md75a]

m5d13:

inc byte ptr [md75c]

mov ah,4fh

int 21h

jnb m5cf7

ret

db 0

m5e37:

db '.'

m5e38:

db 'HEX',0

m5e3c:

db '.'

m5e3d:

db 'ASM',0

;m5e3e:

db '.'

m5e3f:

db 'TXT',0

m5e49:

db '*'

m5e50:

db '.*'

m5e52:

dw 0

m5e54:

dw 0

;m5e56:

dw 0

m5e58:

db 13 dup (20h)

dw 0

m5e66:

mov cx,3fh

mov ah,4eh

int 21h

jmp m5e74

m5e6f:

mov ax,3d00h

int 21h

m5e74:

jnb m5e78

mov al,1

m5e78:

ret

m5e79:

mov bx,word ptr [m7481]

m5e7e:

mov ah,3eh ;close

int 21h ;close file

ret

m5e83:

mov bx,word ptr [m7481]

mov ah,3fh

int 21h  ;read file

jnb m5e90

mov al,2

m5e90:

ret

m5e91:

mov ah,40h ;read file

int 21h

jb m5e9b

cmp ax,cx

jnb m5ecf

m5e9b:

call m5e7e ;close file

ret

m5eb6:

clc

ret

m5eb8:

m5ebd:

mov cx,20h

mov ah,3ch

int 21h

jnb m5ecf ;ret

stc

m5ecf:

ret

m5ed0:

dw 0

m5ed2:

dw 0

m60e7:

m6143:

m614a:

ret

m62f6:

mov di,offset md75a

call m6302

jb m62ff

ret

m62ff:

ret

m6302:

push di

push cx

repnz movsb

mov dx,di

sub cx,dx

dec cx

call m5e83 ;read file

pop cx

pop si

jb m6316

add cx,ax

m6316:

ret

m6386:

mov al,0ah

mov di,si

repnz scasb

mov si,di

ret

m638f:

push cx

m6390:

lodsb

xor al,cl

stosb

loop m6390

pop cx

ret

m63b8:

mov di,word ptr [m3274]

mov cx,100h ;offset m57ff

xor ax,ax

stosw

not ax

repnz stosw

mov di,word ptr [m3278]

not ax

stosw

ret

m63d0:

mov cx,5

mov di,word ptr [m7315]

repnz movsb

ret

m63da:

mov word ptr [m5ed0],0

mov word ptr [m7142],-1

mov word ptr [m7144],0

mov si,offset md75a

cmp byte ptr [si],2

jnz m63f7

jmp m65be

m63f7:

mov cx,word ptr [m203e]

cmp cx,2dh ;'-'

ja m640c

;call m62f6

mov word ptr [m203e],cx

cmp cx,11 ;b

jb m645a

m640c:

mov al,[si]

cmp al,':'

jz m6423

cmp al,1ah

jz m645a

mov cx,word ptr [m203e]

call m6386

mov word ptr [m203e],cx

jmp m63f7

m6423:

lodsb ;:

lodsw

call m39ac

jb m6454

xor ah,ah

mov word ptr [m713e],ax

shl ax,1

add ax,13 ;d

sub word ptr [m203e],ax

call m653d

jb m6476

add ax,word ptr [m5ed2]

mov word ptr [m713c],ax

lodsw

call m39ac

jb m6476

cmp al,0

jnz m6458

call m6477

call m6491

m6454:

jb m6476

jmp m63f7

m6458:

lodsw

lodsw

m645a:

cmp word ptr [m5ed2],0

jnz m6464

m6464:

xor bx,bx

mov word ptr [m4eb0],bx

xchg bx,word ptr [m7481]

call m5e7e

cmp word ptr [m5ed0],1

m6476:

ret

m6477:

mov ax,word ptr [m713c]

cmp ax,word ptr [m7142]

jnb m6483

mov word ptr [m7142],ax

m6483:

add ax,word ptr [m713e]

cmp ax,word ptr [m7144]

jbe m6490 ;ret

mov word ptr [m7144],ax

m6490:

ret

m6491:

;es [326e]

mov di,word ptr [m713c]

mov cx,word ptr [m713e]

cmp byte ptr [m7135],7

jz m64a8

m64a8:

lodsw

call m39ac

jb m64c0

stosb

inc word ptr [m5ed0]

cmp byte ptr [m7135],7

jz m64bd

m64bd:

loop m64a8

clc

m64c0:

lodsw

lodsw

ret

m653d:

lodsw

call m39ac

jb m654d ;ret

mov dh,al

lodsw

call m39ac

jb m654d

mov ah,dh

m654d:

ret

m65be:

m6e50:

ret

m6e5d:

mov si,offset

m72a6

call ma9b

mov si,offset ded8

call maab

m6eae:

mov di,offset d114

call m5bb

call m6f78

jb m6e5d

push di  ;6eeb

ret

m6f78:

call m6fa3

jb m6f84

ret

m6f84:

stc

ret

m6f93:

push dx

push cx

call di

pop cx

pop dx

call mc8d

ret

m6fa3:

push ax

push di

push [di+2]

mov cx,[di]

add di,4

repnz scasw

mov cx,di

pop di

jnz m6fc9

pop ax

add ax,6

sub cx,ax

add di,cx

mov di,[di]

jmp m6fcb

m6fc9:

stc

pop di

m6fcb:

pop ax

ret

m7070:

ret

m70eb:

mov ax,4c00h

int 21h

m7127:

dw 0

dw 0,0,0

m712e:

db 0

dw 0,0,0,0

m7135:

dw 0

dw 0,0

m713c:

dw 0

m713e:

dw 0

dw 0

m7142:

dw 0

m7144:

dw 0

dw 0,0,0

m714a:

dw 149h,0d06h,1,0,0,0

m7150:

dw 1627h

m7152:

dw 127h

dw 0d22h

m7156:

dw de27

dw 0,0,0,0,0

dw 0

dw 0,0,0,0,0

m7176:

dw d1014

dw 0

db 111 dup (0)

m72a6:

db 0ah,0ah,0dh,'Main Menu',0ah,0ah,0dh,0

m72e2:

db 0ah

db 0dh,'Error message: ',0

m72f4:

db 0dh,0ah,'Assembling file:  '

m7308:

db 88 dup (20h)

m7315:

dw 0,0,0,0,0

m7356:

db 0dh,0ah,'Please wait...',0

m7368:

db 'Press any key to continue...',0

m7387:

db 'Start addr : ',0

m7408:

db 0dh,0ah,'Completed !',0

m745a:

db 'Block top : ',0

m7481:

dw 0

db 20h

m7483:

db 20h

m7484:

db 'File: ',0

;m748b:

db 'Find: ',0

m74d2:

dw offset d1044

dw offset d1051

dw offset d106a

dw offset d107b

dw offset d1096

dw offset d10a8

dw offset d10bc

dw offset d10cb

dw offset d10db

dw offset d10e7

dw offset d10fc

dw offset d1112

;

db 'NONAME.HEX',0

d1051:

db 'Extra characters on line',0

d106a:

db 'Operands is lost',0

d107b:

db 'ORG address is less than: ',0

d1096:

db 'Invalid operand: ',0

d10a8:

db 'Invalid instruction: ',0

d10bc:

db 'Invalid data: ',0

d10cb:

db 'Multi-defined: ',0

d10db:

db 'Undefined: ',0

d10e7:

db 'Adress out of range',0

d10fc:

db 'OBJ file is too large',0

d1112:

db 'Too many errors detected & abort

!',0

;

db 0dh,0ah

dw 0

;m74f4:

dw 0,0

;

db 'options',0

m7504:

db 0

m7505:

dw 0,0,0

m7510:

dw 0

db 150 dup (0)

m75a5:

dw 0,0,0

m75ae:

dw 0

db 111 dup (0)

m7610:

dw 0

db 111 dup (0)

m7692:

dw 0

m7694:

dw 0

m7696:

dw 0

m7698:

dw 0

m769a:

dw 0

m769c:

dw 0

m769e:

dw 0

m76a0:

dw 0,0,0

m76a6:

db 0

m76a7:

db 0

m76a8:

db 0

m76a9:

db 0

m76aa:

db 0

m76ab:

dw 0

db 111 dup (0)

m771e:  ; hex file name

dw 0

db 55 dup (0)

m775a:

dw 0

db 222 dup  (0)

dw 0

dw 0

dw 0

md75a:

db 0

md75b:

db 0

md75c:

db 0

db 111 dup (0)

e3274:

db 111 dup (0)

;d928:

dw

0h

dw 0

dw 0

dw 0

d27:

db 0

d28:

dw 0,0,0,0

da2:

db 0

da3:

db 0

da4:

db 0

db 40 dup (0)

de5:

dw 0,0,0

d1df:

db 111 dup (0)

d125:

dw 0

;d1df:

dw 0

d2de:

dw 0

db 12 dup (0)

dw 0

de27:

dw 0

db 33 dup (0)

d1014:

dw 0

m8000:

db 0

code  ends

end  m0000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值