ܣǣ256*25665536ܵãһʹAHĴһЩ¿ʹļĴͨļĴݺͲġ ӵ INT 10hж0EhӹַHello!'ĻʾһַȻһҪ
#MAKE_COM# ; comļָ ORG 100h ʹõӹûзֵ ֻþͿˡ MOV AH, 0Eh ; ѡӹ int 10h/0eh ӹܣ ALĴеASCIIӦַ MOV AL, 'H' ; ASCII: 72 INT 10h ; MOV AL, 'e' ; ASCII : 101 INT 10h ; MOV AL, 'l' ; ASCII : 108 INT 10h ; MOV AL, 'l' ; ASCII : 108 INT 10h ; MOV AL, 'o' ; ASCII : 111 INT 10h ; MOV AL, '!' ; ASCII : 33 INT 10h ; RET ; زϵͳ ճEmu8086༭ [Compile and Emulate] ťУ
ú - emu8086.inc
ͨһЩúʹ̸ӷ㡣ijʹļеĺķ
INCLUDEҪõļ
ԶԴڵļвõļûҵInc ļСͨȫ emu8086.incλIncļУûйϵֻ֪ʲô㹻ˡҪʹemu8086.incеĺӦĿͷ include 'emu8086.inc' emu8086.inc µĺ:
PUTC char - һasciiַ굱ǰλֵֻһĺ GOTOXY col, row - õǰλã PRINT string - ַһ
PRINTN string - ַһprint֮ͬͬԶس CURSOROFF - رı CURSORON - ı
ʹķǣҪλֵдϺƼϲ:
include emu8086.inc ORG 100h PRINT 'Hello World!' GOTOXY 10, 5 PUTC 65 ; 65 - ASCII 'A' PUTC 'B' RET ; زϵͳ END ; ֹͣ Ĵʱҵеemu8086.incļȻеĺʵʵĴ滻ͨ˵궼DZȽСĴΣʹúʹĿִгرڽļС˵ʹù̸ã emu8086.inc ͬ¹:
PRINT_STRING - ڵǰλһַַַDS:SI Ĵʹ
ʱҪENDǰDEFINE_PRINT_STRING ʹ.
PTHIS - ڵǰλһַͬ PRINT_STRINGһ֮ͬ
ջַַֹ
Ӧcall֮塣
CALL PTHIS
db 'Hello World!', 0
ʹʱҪ END ǰ
DEFINE_PTHIS GET_STRING - ûõһַַд DS:DI ָĻ壬ĴС DXáسΪʹʱҪENDǰ
DEFINE_GET_STRING CLEAR_SCREEN - (Ļ),ȻϽ. ʹʱҪENDǰDEFINE_CLEAR_SCREEN
SCAN_NUM - ȡûӼĶλзCXĴ ʹʱҪ ENDǰ DEFINE_SCAN_NUM
PRINT_NUM - AXĴезʹʱҪEND ǰ DEFINE_PRINT_NUMԼ DEFINE_PRINT_NUM_UNS.
PRINT_NUM_UNS - AXĴеʹʱҪEND ǰDEFINE_PRINT_NUM_UNS.
ʹ̣ԴĵײEND֮ǰЩʹCALLָϹá磺
include 'emu8086.inc' ORG 100h LEA SI, msg1 ; Ҫ CALL print_string ; CALL scan_num ; ȡַcx MOV AX, CX ; CXֵAX; ַ CALL pthis DB 13, 10, 'You have entered: ', 0 CALL print_num ; AXеַ RET ; زϵͳ