错题 3jxn (8253复杂)


指示型指令


 C

比如   ,跟C语言的return 一样,可以由多条,但是返回的位置都是一个地方

JN NEXT
RET
NEXT:
RET

 A 

=可以重复

EQU不可以重复


中断向量:中断服务程序的入口地址

向量中断:识别中断源的方法


 接口

编程题:

设字节变量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

猜你喜欢

转载自blog.csdn.net/m0_64365315/article/details/128580230