📄 sy8-2.asm
字号:
; 实验八 D/A转换实验 SY8-2.ASM
DACS EQU 29CH
DATA SEGMENT
MESS1 db 0dh,0ah,0dh,0ah
DB 'Press 1 for sawtooth wave',0DH,0AH
DB 'Press 2 for triangle wave',0DH,0AH
DB 'Press 3 for square wave',0DH,0AH
DB 'Press 4 for sin wave',0DH,0AH
DB 'Press 5 to quit DOS',0DH,0AH,'$'
MESS2 db 0dh,0ah
DB 'Please select again.',0DH,0AH,'$'
MESS3 db 0dh,0ah
DB 'Press any key to quit main menu',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
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: 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 FB
MOV AL,AH
CMP AL,'4'
JZ ZXB1
MOV AL,AH
CMP AL,'5'
JNZ WX
JMP QIT
ZXB1: JMP ZXB
WX: LEA DX,MESS2
MOV AH,09H
INT 21H
JMP BG
JCB: MOV DX,DACS
MOV AL,00H
BBB: MOV CX,0200H
BB: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
ADD AL,01H
CMP AL,00H
JNZ BB
LOOP BB
PUSH AX
PUSH DX
MOV DL,0FFH
MOV AH,06H
INT 21H
JNZ BG
POP DX
POP AX
JMP BBB
SJB: MOV DX,DACS
MOV AL,00H
EEE: MOV CX,0200H
EE: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
ADD AL,01H
CMP AL,0FFH
JNE EE
FF: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
SUB AL,01H
CMP AL,00H
JNE FF
LOOP EE
PUSH AX
PUSH DX
MOV DL,0FFH
MOV AH,06H
INT 21H
JNZ BG2
POP DX
POP AX
JMP EEE
BG2: JMP BG
FB: MOV DX,DACS
MOV AX,0000H
HH: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
ADD AH,01H
CMP AH,00H
JNE HH
MOV AL,0FFH
II: OUT DX,AL
INC DX
OUT DX,AL
DEC DX
ADD AH,01H
CMP AH,00
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: MOV DX,DACS
JJJ: MOV CX,50H
JJ: LEA SI,SINBUF2
MOV BL,116
KK: MOV AL,[SI]
OUT DX,AL
INC DX
OUT DX,AL
DEC DX
INC SI
DEC BL
JNZ KK
LOOP JJ
PUSH AX
PUSH DX
MOV DL,0FFH
MOV AH,06H
INT 21H
JNZ BG3
POP DX
POP AX
JMP JJJ
BG3: JMP BG
QIT: MOV AX,4C00H
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -