📄 adda.asm
字号:
; SY8-3.ASM (D/A、A/D联调实验)
ADCS EQU 298H
ADPORT EQU 298H
DACS EQU 29CH
DATA SEGMENT
BUFFER1 DB 640 DUP(0)
BUFFER2 DB 640 DUP(0)
P1 DW 8FH
P2 DB 0FFH
FLAG DB 0
MESS1 DB '锯齿波----按 1',0DH,0AH
DB '三角波----按 2',0DH,0AH
DB '方 波----按 3',0DH,0AH
DB '正弦波----按 4',0DH,0AH
DB '退 出----按 5',0DH,0AH,'$'
MESS2 DB '按下键无效,请继续选择',0DH,0AH,'$'
MESS3 DB '按任意键退回主菜单',0DH,0AH,'$'
SINBUF1 DB 080H,08CH,098H,0A5H,0B0H,0BCH,0C7H,0D1H
DB 0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFH
DB 0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E2H,0DAH
DB 0D1H,0C7H,0BCH,0B0H,0A5H,098H,08CH,080H
DB 7FH, 73H, 67H, 5AH, 4FH, 43H, 38H, 2EH
DB 25H, 1DH, 15H, 0FH, 09H, 05H, 02H, 00H
DB 00H, 02H, 05H, 09H, 0FH, 15H, 1DH, 25H
DB 2EH, 38H, 43H, 4FH, 5AH, 67H, 73H, 7FH
SINBUF2 DB 128D,135D,141D,148D,155D,161D,167D,174D,180D,186D
DB 192D,198D,203D,209D,214D,219D,223D,227D,231D,235D
DB 239D,242D,245D,248D,250D,252D,253D,254D,255D
DB 255D,254D,253D,252D,250D,248D,245D,242D,239D
DB 235D,231D,227D,223D,219D,214D,209D,203D,198D,192D
DB 186D,180D,174D,167D,161D,155D,148D,141D,135D,128D
DB 121D,115D,108D,101D, 95D, 89D, 82D, 76D, 70D
DB 64D, 58D, 53D, 47D, 42D, 37D, 33D, 29D, 25D, 21D
DB 17D, 14D, 11D, 08D, 06D, 04D, 03D, 02D, 01D, 00D
DB 00D, 01D, 02D, 03D, 04D, 06D, 08D, 11D, 14D, 17D
DB 21D, 25D, 29D, 33D, 37D, 42D, 47D, 53D, 58D, 64D
DB 70D, 76D, 82D, 89D, 95D,101D,108D,115D,121D
DB 127D,126D,125D,124D,122D,120D,117D,114D,111D
DB 107D,103D, 99D, 95D, 91D, 86D, 81D, 75D, 70D, 64D
DB 58D, 52D, 46D, 39D, 33D, 27D, 20D, 13D, 07D, 00D
DB 00D, 07D, 13D, 20D, 27D, 33D, 39D, 46D, 52D, 58D
DB 64D, 70D, 75D, 81D, 86D, 91D, 95D, 99D,104D,107D
DB 111D,114D,117D,120D,122D,124D,125D,126D,127D
NUM DW ?
DATA ENDS
STAC SEGMENT PARA STACK 'STACK'
STA DB 20 DUP(?)
TOP EQU LENGTH STA
STAC ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STAC,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,STAC
MOV SS,AX
MOV AX,TOP
MOV SP,AX
BG: CALL CRTRST
LEA DX,MESS1
MOV AH,09H
INT 21H
MOV AH,08H
INT 21H
PUSH AX
LEA DX,MESS3
MOV AH,09H
INT 21H
POP AX
MOV AH,AL
CMP AL,'1'
JZ JCB
MOV AL,AH
CMP AL,'2'
JZ SJB
MOV AL,AH
CMP AL,'3'
JZ FB1
MOV AL,AH
CMP AL,'4'
JZ ZXB1
MOV AL,AH
CMP AL,'5'
JNZ WX
JMP QUIT
ZXB1: JMP ZXB
WX: LEA DX,MESS2
MOV AH,09H
INT 21H
JMP BG
FB1: JMP FB
JCB: CALL CRTSET
MOV AX,00H
MOV NUM,AX
MOV DX,DACS
MOV AL,00H
BB: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
CALL ADCDIS
ADD AL,01H
PUSH AX
PUSH DX
MOV DL,0FFH
MOV AH,06H
INT 21H
JNZ BG
POP DX
POP AX
JMP BB
SJB: CALL CRTSET
MOV AX,00H
MOV NUM,AX
MOV DX,DACS
MOV AL,00H
EE: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
CALL ADCDIS
ADD AL,01H
CMP AL,0FFH
JNE EE
FF: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
CALL ADCDIS
SUB AL,01H
CMP AL,00H
JNE FF
PUSH AX
PUSH DX
MOV DL,0FFH
MOV AH,06H
INT 21H
JNZ BG2
POP DX
POP AX
JMP EE
BG2: JMP BG
FB: CALL CRTSET
MOV AX,00H
MOV NUM,AX
MOV DX,DACS
MOV AX,0000H
HH: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
PUSH AX
CALL ADCDIS
POP AX
ADD AH,01H
CMP AH,00H
JNE HH
MOV AL,0FFH
II: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
PUSH AX
CALL ADCDIS
POP AX
ADD AH,01H
CMP AH,00H
JNE II
PUSH AX
PUSH DX
MOV DL,0FFH
MOV AH,06H
INT 21H
JNZ BG1
POP DX
POP AX
MOV AL,00H
JMP HH
BG1: JMP BG
ZXB: CALL CRTSET
MOV AX,00H
MOV NUM,AX
MOV DX,DACS
JJ: LEA SI,SINBUF2
MOV BL,116
KK: MOV AL,[SI]
OUT DX,AL
INC DX
OUT DX,AL
DEC DX
CALL ADCDIS
INC SI
DEC BL
JNZ KK
PUSH AX
PUSH DX
MOV DL,0FFH
MOV AH,06H
INT 21H
JNZ BG3
POP DX
POP AX
JMP JJ
BG3: JMP BG
QUIT: MOV AX,4C00H
INT 21H
CRTSET PROC NEAR
PUSH AX
MOV AH,0
MOV AL,06H
INT 10H
POP AX
RET
CRTSET ENDP
ADCDIS PROC NEAR
S12: PUSH DX
PUSH CX
PUSH AX
PUSH BX
MOV DX,ADPORT
OUT DX,AL
CALL DELAY1
IN AL,DX
XOR AH,AH
MOV DL,160
MUL DL
MOV DL,255
DIV DL
XOR AH,AH
MOV DX,AX
MOV AX,160
SUB AX,DX
ADD AX,20
MOV DX,AX
MOV AX,NUM
MOV BX,AX
MOV CX,BX
MOV AH,0CH
MOV AL,1
INT 10H
INC BX
MOV NUM,BX
CMP BX,640
JNZ DISEND
MOV BX,00H
MOV NUM,BX
CALL CRTRST
CALL CRTSET
DISEND: POP BX
POP AX
POP CX
POP DX
RET
ADCDIS ENDP
CRTRST PROC NEAR
PUSH AX
MOV AH,0
MOV AL,3
INT 10H
POP AX
RET
CRTRST ENDP
DELAY1 PROC NEAR
PUSH CX
MOV CX,04000H
LOOP $
POP CX
RET
DELAY1 ENDP
DELAY2 PROC NEAR
PUSH AX
PUSH CX
MOV CX,10H
DL21: CALL DELAY1
LOOP DL21
POP CX
POP AX
RET
DELAY2 ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -