功能:啟動顯示歡迎信息與菜單,輸入 1 顯示 HELLO,WORLD!,輸入 2 顯示 THIS IS MY FIRST ASM_86 PROGRAM!,其他輸入報警並重選。
MSG1~MSG5, ERRMSG)DISPCH(單字符)、ENTER(回車換行)、DISPCHS(字符串)INT 21H/01H 鍵盤輸入帶回顯 → CMP AL,'1' / JE 分支INT 21H/02H 輸出 07H (BEL) 實現蜂鳴報警JMP AGAIN 構建輸入驗證循環DATA SEGMENT
MSG1 DB '***WELCOME TO MY PROGRAM BY LLUCT***','$'
MSG2 DB '1:BASIC MESSAGE 2:ADVANCED MESSAGE','$'
MSG3 DB 'PLEASE CHOOSE:','$'
MSG4 DB 'HELLO,WORLD!^-^','$'
MSG5 DB 'THIS IS MY FIRST ASM_86 PROGRAM! @^-^@','$'
ERRMSG DB 'CHOOSE ERROR! -_-b','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
CALL ENTER
LEA DX, MSG1
CALL DISPCHS
CALL ENTER
CALL ENTER
LEA DX, MSG2
CALL DISPCHS
AGAIN:
CALL ENTER
LEA DX, MSG3
CALL DISPCHS
MOV AH, 01H
INT 21H
CMP AL, '1'
JE BASICP
CMP AL, '2'
JE ADVANP
JMP ERROR
BASICP:
CALL ENTER
LEA DX, MSG4
CALL DISPCHS
CALL ENTER
JMP EXIT
ADVANP:
CALL ENTER
LEA DX, MSG5
CALL DISPCHS
CALL ENTER
JMP EXIT
ERROR:
CALL ENTER
LEA DX, ERRMSG
CALL DISPCHS
MOV DL, 07H
CALL DISPCH
CALL ENTER
JMP AGAIN
EXIT:
MOV AH, 4CH
INT 21H
; 三個子程序:DISPCH / ENTER / DISPCHS
CODE ENDS
END START
功能:提示輸入姓名,讀取以回車結尾的字符串,輸出 Hello, [輸入內容], Welcome to here!。
INPUT DB 100 DUP(?) 定義輸入緩衝區INT 21H/01H 循環讀字符至 AL,CMP AL,0DH 判斷回車結束MOV INPUT[SI], AL / INC SI 存入緩衝區MOV INPUT[SI], 24H 補 `$` 供 09H 功能輸出DISPCH/ENTER/DISPCHS 子程序複用MASM HELLOCH.ASM
LINK HELLOCH.OBJ
HELLOCH.EXE
MASM HEINOUT.ASM
LINK HEINOUT.OBJ
HEINOUT.EXE
兩例均展示了模塊化設計、中斷服務調用、字符串處理、流程控制的組合語言核心技能。