📄 ad_zhuanhuan.txt
字号:
A/D转换原理实验
基于接口设计的A/D D/A转换。以下程序已经通过编译运行。运行良好。功能到位
本试验要求对汇编语言编程的进一步理解。对接口技术的更深入讨论
程序:
1. 等待方式:
STACK SEGMENT STACK
DW 100 DUP(?)
STACK ENDS
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN PROC
MOV AX,DATA
MOV DS,AX
MOV DX,303H
MOV AL,0
OUT DX,AL
MOV CX,0400H
LP:
NOP
LOOP LP
MOV DX,300H
IN AL,DX
MOV CX,8
L1:
ROL AL,1
PUSH AX
MOV BL,AL
AND BL,1H
ADD BL,'0'
MOV DL,BL
MOV AH,2H
INT 21H
POP AX
LOOP L1
MOV AX,4C00H
INT 21H
MAIN ENDP
CODE ENDS
END MAIN
2. 查询方式:
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC
MOV AX,DATA
MOV DS,AX
MOV DX,301H
MOV AL,0
OUT DX,AL
MOV DX,310H
TEST:
IN AL,DX
AND AL,80H
JZ TEST
MOV DX,301H
IN AL,DX
MOV CX,8
L1:
ROL AL,1
PUSH AX
MOV BL,AL
AND BL,1H
ADD BL,'0'
MOV DL,BL
MOV AH,2H
INT 21H
POP AX
LOOP L1
MOV AX,4C00H
INT 21H
MAIN ENDP
CODE ENDS
END MAIN
3. 中断方式:
STACK SEGMENT STACK
DW 100 DUP(?)
STACK ENDS
DATA SEGMENT
STRING DB 'A/D CONVERT--INTERRUPT MODE',0DH,0AH,'$'
MSG DB 'PORT 1 CODE='
BIN DB 8 DUP(?),0DH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN PROC FAR
MOV AX,DATA
MOV DS,AX
MOV ES,AX
PUSH DS
MOV DX,OFFSET INTER
MOV AX,SEG INTER
MOV DS,AX
MOV AL,0AH
MOV AH,25H
INT 21H
POP DS
MOV DX,OFFSET STRING
MOV AH,9
INT 21H
CLI
IN AL,21H
AND AL,11111011B
OUT 21H,AL
MOV DX,301H
OUT DX,AL
WAIT0: STI
HLT
CLI
MOV DX,301H
OUT DX,AL
JMP WAIT0
MOV AH,4CH
INT 21H
INTER PROC NEAR
CLI
PUSH AX
PUSH DX
MOV DX,300H
IN AL,DX
CALL DISPLAY
MOV AL,20H
OUT 20H,AL
POP DX
POP AX
IRET
INTER ENDP
DISPLAY PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DI
CLD
MOV BL,AL
MOV DI,OFFSET BIN
MOV CX,8
AGAIN: ROL BL,1
MOV AL,BL
AND AL,01H
ADD AL,30H
STOSB
LOOP AGAIN
MOV AH,9
MOV DX,OFFSET MSG
INT 21H
POP DI
POP CX
POP BX
POP AX
RET
DISPLAY ENDP
CODE ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -