, [Compile]. , .
ϳ [Emulate], .
, "Emulate".
, executables, . "Show Emulator", "Emulator".
, "MyBuild". "MyBuild" , , Samples File, - , .
' - , - hexadecimal, - , - ASCII.
[Single Step] , .
[Run] , .
, "Extended Viewer" , . .
', "Extended Viewer" WORD, ' . - : LOW BYTE HIGH BYTE '. ' "Extended Viewer", , .
[Flags] .
[Compile]. , . ϳ [Emulate] .
, :
#MAKE_COM#
#MAKE_BIN#
#MAKE_BOOT#
#MAKE_EXE#
. , , .
:
#MAKE_COM# - . 100h (256 ). Template New, COM-. ORG 100h . . ϳ DOS Windows.
#MAKE_EXE# - "" . . . EXE Template New - , . ( ) . ϳ DOS Windows.
|
|
#MAKE_BIN# - . , ', . "MY.BIN" , - "MY.BINF" "MY.BIN" , "MY.BINF". ( ). , "MY.BINF", "MY.BIN" CS: IP.
CS: IP.
Emu8086.
".BINF , #MAKE_BIN#.
! ".binf" , !
! , :
LOAD_SEGMENT = 0100 LOAD_OFFSET = 0000 CS = ES = SS = DS = 0100 IP = 0000 LOAD_SEGMENT LOAD_OFFSET , CS IP, .
Load to offset (0000), ORG???? h . BIN, ???? h - . , .
#MAKE_BOOT# - ( ).
(FLOPPY_0) :[Virtual Drive] -> [Write 512 bytes at 7C00 to Boot Sector] ". Boot"-, (. "micro-os_loader. Asm" "micro-os_kernel. Asm " " Samples ").
[Virtual Drive] -> [Boot from Floppy], .
, , '. "RawWrite for Windows" : http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm (, "micro-os_loader.asm" MS-DOS- , , IBM (MS -DOS)).
ORG 7C00h , ' 0000: 7C00.
. BOOT- 512 ( ).
. Emu8086.
:
MOV DS, 100 - , - :
MOV AX, 100 MOV DS, AX MOV AL, 300 - , AL 8 , 255 ( 11111111b), - 128.
|
|
. , . :
# make_COM #
ORG 100h
MOV AX, 0
MOV CX, 5
m1: INC AX
LOOP m1; !
MOV AL, 0FFFFh; .
RET
:
(7) Condition Jump out of range ( )!: LOOP m1 (9) Wrong parameters ( ): MOV AL, 0FFFFh (9) Operands do not match ( ): Second operand is over 8 bits ( 8 )! (7) - . , , m1 - 0000. , 100h.
: MOV AL, 0FFFFh (AL 0FFFFh). ! :
# Make_COM #ORG 100h
MOV AX, 0
MOV CX, 5m1: INC AX
LOOP m1; !
MOV AL, 0FFh; !
RET
, 2 , .
asm - , .
debug - , .
symbol - . , "Variables" (). , .
binf - , BIN- , ( , - BIN-).