帮我看看这个问题。
TITLE dshape-- construct a shape from a shape table
data_seg SEGMENT
car DB 7
DB 52h,70h,0,0
DB 0b1h,70h,0,1
DB 0bdh,7,0,1
DB 0dbh,7,0,1
DB 4fh,7,1,0
DB 4fh,7,0,-3
DB 2,7,-2,1
data_seg ENDS
;----------------------------------------
code_seg SEGMENT
ASSUME CS:code_seg,DS:data_seg
main PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,data_seg
MOV DS,AX
CALL CLear_screen
LEA DI,car
MOV DH,10
MOV DL,10
CALL display_shape
RET
main ENDP
clear_screen PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,6
MOV AL,0
MOV CH,0
MOV CL,0
MOV DH,24
MOV DL,79
MOV BH,7
INT 10h
POP DX
POP CX
POP BX
POP AX
RET
clear_screen ENDP
;---------------------------------------------
display_shape PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AH,0fh
INT 10h
SUB CH,CH
MOV CL,[DI]
INC DI
next_char:
ADD DH,[DI+2]
ADD DL,[DI+3]
MOV AH,2
INT 10h
MOV AL,[DI]
MOV BL,[DI+1]
PUSH CX
MOV CX,1
MOV AH,09
INT 10h
POP CX
ADD DI,4
LOOP next_char
POP DI
POP DX
POP CX
POP BX
POP AX
RET
display_shape ENDP
;-----------------------------------------------------
code_seg ENDS
END
这是书上的原题,清华大学IBM-PC汇编语言,用字符画一个汽车的图形。
能够通过编译。但是在运行的时候,显示遇到无效指令。不知道为什么?
还有就是,我在编程的时候,调用dos里的09(显示字符串)总是能够通过编译,但在运行的时候就显示遇到无效指令,不知道是为什么?