A
指示型指令
C
比如 ,跟C语言的return 一样,可以由多条,但是返回的位置都是一个地方
JN NEXT RET NEXT: RET
A
=可以重复
EQU不可以重复
C
中断向量:中断服务程序的入口地址
向量中断:识别中断你的方法
接口
编程题:
设字节变量RES中存有某考生某门课的百分制成绩(用xx表示),编写程序,将百分制成绩
转换为五级记分制成绩,并将转换结果用大写字母A-E存入变量GRADE中,五级成绩为
‘A’(RES>=90) ,'B'9(90>RES>=80),'C'(80>RES>=70),'D'(70>RES>=80),'E'(60>RES)。
DATA SEGMENT RES DB xx GRADE DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,RES CMP AL,90 JAE NEXT1 CMP AL,80 JAE NEXT2 CMP AL,70 JAE NEXT3 CMP AL,60 JAE NEXT4 MOV DL,'E' JMP NEXT NEXT1: MOV DL,'A' JMP NEXT NEXT2: MOV DL,'B' JMP NEXT NEXT3: MOV DL,'C' JMP NEXT NEXT4: MOV DL,'D' NEXT: MOV GRADE,DL EXIT: MOV AH,4CH INT 21H CODE ENDS END START
8253级联 就是因为初值太大,
二级级联
前级仍是信号源(降频) 必须用方式2或者方式3
后级才是输出级(题目要求)
写计数器0
计数器0输入500KHZ,输出100HZ
初值=输入频率/输出频率=5000
方式3(做级联前级只能选方式2或者方式3),BCD计数
写控制字
0011 0111(37H)
MOV AL,37H OUT 43H,AL;送计数器0的控制字 MOV AX,5000H OUT 40H,AL;送初值 MOV AL,AH OUT 40H,AL
写计数器1
亮两秒灭两秒,周期4秒,方波,方式3,输入100HZ
时间频率互为倒数
计数1初值=100hz/(4s分之1)=400
控制字
0111 0111(77H)
MOV AL,77H OUT 43H,AL MOV AX,400H MOV 41H,AL MOV AL,AH MOV 41H,AL
写计数器2
计数器1工作在方式3,gate变低就停止计数了,也就是需要OUT2经过非门之后输出20s的高电平
20秒到达后经过非门输出低电平。也就是本身要输出20秒的低电平,结束输入高电平
符合的波形只有方式0和方式1,但是方式1是通过门控信号启动的,门控已经接到了高电平,所以只能选方式0
初值= 100HZ/20s分之一=2000
方式0,BCD计数
1011 0001(B1H)
;给控制口送控制字 MOV AL,0B1H OUT 43H,AL ;送计数初值 MOV AX,2000H OUT 42H,AL MOV AL,AH OUT 42H,AL