code SEGMENT
ASSUME CS:code
start: MOV CX, 8000H ;波形个数
MOV AL, 0 ;锯齿谷值
next: MOV DX, port1 ;打开第一级锁存
OUT DX, AL
MOV DX, port2 ;打开第二级锁存
OUT DX, AL
CALL delay ;控制锯齿波的周期
INC AL ;修改输出值
CMP AL, 0CEH ;比较是否到锯齿峰值
JNZ next ;未到跳转
MOV AL, 0 ;重置锯齿谷值
LOOP next ;输出个数未到跳转
MOV AH, 4CH ;返回DOS
INT 21H
;子程delay (略)
code ENDS
END start