# mov: 1 (word), 2 (word), 3 (off, base+index+off), 4, 5 (off),
|
# mov: 1 (word), 2 (word), 3 (off, base+index+off), 4, 5 (off),
|
# 7 (byte,word), 8 (byte off), 9 (word base), 10 (byte,word),
|
# 7 (byte,word), 8 (byte off), 9 (word base), 10 (byte,word),
|
# 11 (word off, byte base+index), 12 (imm,special)
|
# 11 (word off, byte base+index), 12 (imm,special)
|
# jmp: 1, 2, 3 (reg), 3 (mem base+index+off), 4, 5 (mem base+index+off)
|
# jmp: 1, 2, 3 (reg), 3 (mem base+index+off), 4, 5 (mem base+index+off)
|
.code16
|
.code16
|
start:
|
start:
|
jmp b # (2) jmp
|
jmp b # (2) jmp
|
hlt
|
hlt
|
|
|
.org 14
|
.org 14
|
b:
|
b:
|
movw $0xf000, %bx # (10) mov word
|
movw $0xf000, %bx # (10) mov word
|
movw %bx, %ds # (4) mov
|
movw %bx, %ds # (4) mov
|
movw (0xfff3), %ax # (2) mov word
|
movw (0xfff3), %ax # (2) mov word
|
jmp *%ax # (3) jmp reg
|
jmp *%ax # (3) jmp reg
|
hlt
|
hlt
|
|
|
.org 0x1290
|
.org 0x1290
|
ljmp $0xe342, $0xebe0 # (4) jmp
|
ljmp $0xe342, $0xebe0 # (4) jmp
|
hlt
|
hlt
|
|
|
.org 0x2000
|
.org 0x2000
|
movw $0x1000, %bx # (10) mov word
|
movw $0x1000, %bx # (10) mov word
|
movw %bx, %ds # (4) mov
|
movw %bx, %ds # (4) mov
|
|
|
movb $0xfb, %ah # (10) mov byte
|
movb $0xfb, %ah # (10) mov byte
|
movb $0xe1, %al # (10) mov byte
|
movb $0xe1, %al # (10) mov byte
|
movw %ax, (0x2501) # (1) mov word
|
movw %ax, (0x2501) # (1) mov word
|
|
|
movw $0x1001, (0x2600) # (11) mov word
|
movw $0x1001, (0x2600) # (11) mov word
|
movw (0x2600), %ss # (3) mov
|
movw (0x2600), %ss # (3) mov
|
|
|
movw %ss, (0x2601) # (5) mov
|
movw %ss, (0x2601) # (5) mov
|
movb (0x2601), %dl # (8) mov byte
|
movb (0x2601), %dl # (8) mov byte
|
movb $0x00, %dh # (10) mov byte
|
movb $0x00, %dh # (10) mov byte
|
movw %dx, %di # (7) mov word
|
movw %dx, %di # (7) mov word
|
|
|
movw $0x2506, %bp # (10) mov word
|
movw $0x2506, %bp # (10) mov word
|
|
|
jmp *-22(%bp,%di) # (3) jmp mem
|
jmp *-22(%bp,%di) # (3) jmp mem
|
hlt # m[0x12501] = 0xfbe1
|
hlt # m[0x12501] = 0xfbe1
|
|
|
.org 0x3001
|
.org 0x3001
|
.byte 0xc7,0xc0 # (12) movw $0x4001, %ax
|
.byte 0xc7,0xc0 # (12) movw $0x4001, %ax
|
.word 0x4001 # [not in a default codification]
|
.word 0x4001 # [not in a default codification]
|
movw $0x2501, %bx
|
movw $0x2501, %bx
|
movw %ax, (%bx) # (9) mov word
|
movw %ax, (%bx) # (9) mov word
|
movw $2, %di
|
movw $2, %di
|
movb $0x00, (%bx,%di) # (11) mov byte
|
movb $0x00, (%bx,%di) # (11) mov byte
|
movb $4, %ch
|
movb $4, %ch
|
movb %ch, %cl # (7) mov byte
|
movb %ch, %cl # (7) mov byte
|
movb $0, %ch
|
movb $0, %ch
|
movw %cx, %si
|
movw %cx, %si
|
movb $0xf0, -1(%bx,%si)
|
movb $0xf0, -1(%bx,%si)
|
movw $0x3, %si
|
movw $0x3, %si
|
ljmp *-24(%bp,%si) # (5) jmp mem
|
ljmp *-24(%bp,%si) # (5) jmp mem
|
hlt
|
hlt
|
|
|
.org 0x4001
|
.org 0x4001
|
movw -3(%bx,%si), %ax
|
movw -3(%bx,%si), %ax
|
movw $0x0, %dx
|
movw $0x0, %dx
|
movw %dx, %ds
|
movw %dx, %ds
|
movw %ax, (0)
|
movw %ax, (0)
|
hlt
|
hlt
|
|
|
.org 65520
|
.org 65520
|
jmp start # (1) jmp
|
jmp start # (1) jmp
|
.word 0x1290
|
.word 0x1290
|
|
|
.org 65534
|
.org 65534
|
.word 0xffff
|
.word 0xffff
|
|
|
|
|