对程序修改如下,编译通过。
DATASG SEGMENT
MESS1 DB "BEGINNER'S ALL-PURPOSE SYMBOLIC INSTRUCTION CODE.",0
DATASG ENDS
STACKSG SEGMENT
MESS2 DB 100 DUP(?)
STACKSG ENDS
CODESG SEGMENT
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
MAIN PROC FAR
BEGIN: MOV AX, DATASG
MOV DS, AX
MOV SI, 0
CALL LETTERC
MOV AX, 4C00H
INT 21H
RET
MAIN ENDP
;
LETTERC PROC NEAR
CMP BYTE PTR MESS1[SI], "0"
JE OVER
CMP BYTE PTR[SI], 'a'
JB BACK
CMP BYTE PTR[SI], 'z'
JA BACK
AND BYTE PTR[SI], 11011111B
BACK: INC SI
JMP LETTERC
OVER: RET
LETTERC ENDP
CODESG ENDS
END BEGIN
请楼主在使用汇编语言编程时一定要使用正确的汇编格式!!!
另外,call指令后出现的是子程序的入口地址,所以一定要在程序段中定义一个子程序! |