CGROUP GROUP CODE
DGROUP GROUP DATA
EGROUP GROUP EXTRA
DATA SEGMENT PUBLIC
DWLAB DW 0
DBLAB DB 0
DATA ENDS
EXTRA SEGMENT PUBLIC
EWLAB DW 0
EBLAB DB 0
EXTRA ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CGROUP,DS:DGROUP,ES:EGROUP
CWLAB DW 0
CBLAB DB 0
MOV CWLAB,1
MOV CBLAB,1
MOV DWLAB,1
MOV DBLAB,1
MOV EWLAB,1
MOV EBLAB,1
LODSW
LODSB
INT 3
LODS CWLAB
LODS CBLAB
LODS DWLAB
LODS DBLAB
LODS EWLAB
LODS EBLAB
MOVSW
MOVSB
INT 3
MOVS EWLAB,CWLAB
MOVS EBLAB,CBLAB
MOVSW
MOVSB
INT 3
MOVS EWLAB,DWLAB
MOVS EBLAB,DBLAB
MOVSW
MOVSB
INT 3
MOVS EWLAB,EWLAB
MOVS EBLAB,EBLAB
CMPSW
CMPSB
INT 3
CMPS CWLAB,EWLAB
CMPS CBLAB,EBLAB
CMPS DWLAB,EWLAB
CMPS DBLAB,EBLAB
CMPS EWLAB,EWLAB
CMPS EBLAB,EBLAB
XLAT CBLAB
XLAT DBLAB
XLAT EBLAB
CODE ENDS
END
$ jwasm -Zm -Zne -Zv8 -mh foo.asm
JWasm v2.14pre, Jun 19 2020, Masm-compatible assembler.
Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
foo.asm: 62 lines, 2 passes, 1127 ms, 0 warnings, 0 errors
$ wdis foo.o
Module: foo.asm
GROUP: 'DGROUP' _DATA,DATA
GROUP: 'CGROUP' CODE
GROUP: 'EGROUP' EXTRA
Segment: FOO_TEXT WORD USE16 00000000 bytes
Routine Size: 0 bytes, Routine Base: FOO_TEXT + 0000
No disassembly errors
Segment: _DATA WORD USE16 00000000 bytes
Segment: DATA PARA USE16 00000003 bytes
0000 L$1:
0000 00 00 ..
0002 L$2:
0002 00 .
Segment: EXTRA PARA USE16 00000003 bytes
0000 L$3:
0000 00 00 ..
0002 L$4:
0002 00 .
Segment: CODE PARA USE16 00000060 bytes
0000 L$5:
0000 00 00 ..
0002 L$6:
0002 00 .
0003 2E C7 06 00 00 01 00 mov word ptr cs:L$5,0x0001
000A 2E C6 06 02 00 01 mov byte ptr cs:L$6,0x01
0010 C7 06 00 00 01 00 mov word ptr DGROUP:L$1,0x0001
0016 C6 06 02 00 01 mov byte ptr DGROUP:L$2,0x01
001B 26 C7 06 00 00 01 00 mov word ptr es:L$3,0x0001
0022 26 C6 06 02 00 01 mov byte ptr es:L$4,0x01
0028 26 AD lods word ptr es:[si]
002A 26 AC lods byte ptr es:[si]
002C CC int 0x03
002D 2E AD lods word ptr cs:[si]
002F 2E AC lods byte ptr cs:[si]
0031 AD lodsw
0032 AC lodsb
0033 26 AD lods word ptr es:[si]
0035 26 AC lods byte ptr es:[si]
0037 A5 movsw
0038 A4 movsb
0039 CC int 0x03
003A 2E A5 movs word ptr [di],word ptr cs:[si]
003C 2E A4 movs byte ptr [di],byte ptr cs:[si]
003E 2E A5 movs word ptr [di],word ptr cs:[si]
0040 2E A4 movs byte ptr [di],byte ptr cs:[si]
0042 CC int 0x03
0043 A5 movsw
0044 A4 movsb
0045 A5 movsw
0046 A4 movsb
0047 CC int 0x03
0048 26 A5 movs word ptr [di],word ptr es:[si]
004A 26 A4 movs byte ptr [di],byte ptr es:[si]
004C 26 A7 cmps word ptr es:[si],word ptr [di]
004E 26 A6 cmps byte ptr es:[si],byte ptr [di]
0050 CC int 0x03
0051 2E A7 cmps word ptr cs:[si],word ptr [di]
0053 2E A6 cmps byte ptr cs:[si],byte ptr [di]
0055 A7 cmpsw
0056 A6 cmpsb
0057 26 A7 cmps word ptr es:[si],word ptr [di]
0059 26 A6 cmps byte ptr es:[si],byte ptr [di]
005B 2E D7 xlat word ptr cs:[bx]
005D D7 xlatb
005E 26 D7 xlat word ptr es:[bx]
Routine Size: 96 bytes, Routine Base: CODE + 0000
No disassembly errors