8086asm: properly initialize DS and DF

This commit is contained in:
Virgil Dupras 2020-06-12 19:07:23 -04:00
parent 177750c928
commit 66b27b0790
3 changed files with 5 additions and 1 deletions

View File

@ -5,3 +5,4 @@ VARIABLE L1 VARIABLE L2 VARIABLE L3 VARIABLE L4
: AH 4 ; : CH 5 ; : DH 6 ; : BH 7 ;
: AX 8 ; : CX 9 ; : DX 10 ; : BX 11 ;
: SP 12 ; : BP 13 ; : SI 14 ; : DI 15 ;
: ES 0 ; : CS 1 ; : SS 2 ; : DS 3 ;

View File

@ -1,7 +1,10 @@
: MOVri, SWAP 0xb0 OR A, A, ;
: MOVrI, SWAP 0xb0 OR A, SPLITB A, A, ;
: MOVsx, 0x8e A, SWAP MODRMrr A, ;
: INT, 0xcd A, A, ;
( no argument, flow ops are special )
: JMP8, 0xeb A, ; : JMP16, 0xe9 A, ; : JZ, 0x74 A, ;
: LODSB, 0xac A, ; : CLI, 0xfa A, ; : HLT, 0xf4 A, ;
: ORrr, 0x08 A, MODRMrr A, ;
: XORxx, 0x31 A, MODRMrr A, ;
: CLD, 0xfc A, ; : STD, 0xfd A, ;

View File

@ -3,7 +3,7 @@ H@ ORG ! 0x7c00 BIN( ! ( BIOS loads boot bin at 0x7c00 )
JMP8, L1 FWR8 ( start )
L2 BSET ( msg ) ," Hello, World!" 0 A,
L1 FSET ( start )
CLI,
CLI, CLD, AX AX XORxx, DS AX MOVsx,
AH 0 MOVri, AL 2 MOVri, ( 80x25 BW video mode ) 0x10 INT,
SI L2 @ ( msg ) MOVrI, AH 0x0e MOVri, ( print char )
L1 BSET ( loop ) LODSB, AL AL ORrr, ( end of str? )