读书人

帮忙看看这个程序,该如何解决

发布时间: 2012-02-17 17:50:42 作者: rapoo

帮忙看看这个程序
MODEL SMALL
CODE

COMADDR DW 3F8H
COMLCR DW 3FBH
COMMCR DW 3FCH
COMIER DW 3F9H
COMLSR DW 3FDH
CONTRL DB 00H


INTSEG DW
INTOFF DW

RCVBYT DB

PUBLIC _ZJCOMSET
PUBLIC _ZJCOMSND
PUBLIC _ZJCOMIST
PUBLIC _ZJCOMRCV

_ZJCOMSET PROC NEAR
MOV DX,COMLCR
MOV AL,80H
OUT DX,AL


MOV DX,COMADDR
MOV AL,30H
OUT DX,AL

INC DX
MOV AL,00H
OUT DX,AL /*设置波特率*/

MOV DX,COMLCR
MOV AL,03H
OUT DX,AL

MOV DX,COMMCR
MOV AL,00H
OUT DX,AL

MOV DX,COMIER
MOV AL,00H
OUT DX,AL
RET

_ZJCOMSET ENDP

_ZJCOMSND PROC NEAR

PUSH BP
MOV BP,SP

L1: MOV DX,COMLSR
IN AL,DX
AND AL,20H
SUB AL,20H

JNZ L1
MOV DX, COMADDR
MOV AL,[BP+4]
OUT DX,AL
POP BP
RET
_ZJCOMSND ENDP


_ZJCOMIST PROC NEAR
PUSH DS
PUSH ES

MOV AL ,0CH
MOV AH,35H
INT 21H
MOV INTOFF ,BX
MOV BX,ES
MOV INTSEG,BX

CLI
MOV AL,0CH
MOV AH,25H

MOV DX,SEG INTSEV
MOV DS,DX
MOV DX,OFFSET INTSEV
INT 21H

POP ES
POP DS


MOV DX, COMMCR
MOV AL,08H
OUT DX,AL
MOV DX, COMIER
MOV AL,01H
OUT DX,AL

IN AL,21H
AND AL,0EFH
OUT 21H,AL
STI
RET
_ZJCOMIST ENDP


_ZJCOMRCV PROC NEAR
STI
LW:MOV AL,CONTRL
SUB AL,01H
JNZ LW

MOV CONTRL ,00H
MOV AL,RCVBYT

CLI
RET

_ZJCOMRCV ENDP

INTSEV PROC NEAR
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH DS
PUSH ES

STI
MOV CONTRL,01H
MOV DX,3F8
IN AL,DX
MOV RCVBYT ,AL
CLI
POP ES
POP DS
POP SI
POP DX
POP CX

MOV AL ,21H
OUT 20H,AL
IRET
INTSEV ENDP
END


这个程序还要怎么修改 才能让它能够编绎成功

[解决办法]
; 这个 ....
.MODEL SMALL
.CODE
...
INTSEG DW ?
INTOFF DW ?

RCVBYT DB ?
...
OUT DX,AL ; /*设置波特率*/
...

读书人网 >汇编语言

热点推荐