微机原理与接口技术课程设计说明书(编辑修改稿)内容摘要:

PUSH AX MOV AL, AH CALL DISP1 POP AX CALL DISP1 POP DX POP CX POP BX RET DISP ENDP GETNUM PROC NEAR。 字符匹配程序 PUSH CX REGET: XOR DX, DX GGG: MOV AH, 01H INT 21H CMP AL, 0DH JZ PPP CMP AL, 20H JZ PPP SUB AL, 30H JB KKK CMP AL, 0AH JB GETS CMP AL,11H JB KKK SUB AL, 07H CMP AL, 0FH JBE GETS CMP AL, 2AH JB KKK CMP AL, 2FH JA KKK SUB AL, 20H GETS: MOV CL, 04H SHL DX,CL 12 XOR AH, AH ADD DX ,AX JMP GGG KKK: CRLF MOV AH, 09H MOV DX,OFFSET ERROR INT 21H JMP REGET PPP: PUSH DX CRLF POP DX POP CX RET GETNUM ENDP CODE ENDS END START 程序运行 结果 输入 N 的值,然后再回车。 结果如图 13 的阶乘流程图 三 .硬件中断时钟设计 概述 本设计是利用 Masm for window 集成实验环境来实现的,编写程序,利用主机内的 8253/82542 的计数器 0产生 10ms 对称方波输出,该输出送至 IRQO 使 8259A 每 10ms 产生一次中断, 100 次中断后秒数加 1,通过计数器值 count 自减,即从 100 自减到 0 为止,即是 100*10ms=1s,只有当 count数值减到 1 时,才是 1s 的时间, 通过秒值 +1,重复操作秒个位和“ 9”比较:如果为真,返回 DOS显示当前时间的数值。 如果为假,即是进位后秒十位加 1 操作而个位清零操作,并在 DOS 窗口下进行输出显示。 14 源程序。 FILENAME:。 内容 : 硬件中断时间显示 8253 10MS INTERRUPT PAGE 60,78 STACK SEGMENT PARA STACK 39。 STACK39。 DB 256 DUP(0) STACK ENDS DATA SEGMENT PARA PUBLIC 39。 DATA39。 COUNT DB 100 TENH DB 39。 239。 HOUR DB 39。 3:39。 TENM DB 39。 539。 MINUTEDB 39。 939。 DB 39。 :39。 TENS DB 39。 539。 SECOND DB 39。 039。 , 0DH ,39。 $39。 DATA ENDS CODE SEGMENT PARA PUBLIC 39。 CODE39。 START PROC FAR ASSUME CS:CODE PUSH DS MOV AX,0 PUSH AX MOV AH, 01H。 等待键按下, AL=字符的 ASCII 码 INT 21H CLI CLD MOV AX, 0000H MOV DS, AX MOV SI, 0020H。 DS: SI 指向 08H 中断向量 LODSW。 取 08 中断入口的偏移地址 MOV BX,AX LODSW。 取 08 中断入口段地址 PUSH AX。 压栈保护 PUSH BX MOV AX,DATA。 建立数据段的可寻址性 MOV DS, AX ASSUME DS:DATA MOV AX, 0000H MOV ES, AX MOV DI, 0020H。 ES: DS 指向 08 中断 向量存放地址 MOV AX,OFFSET TIMER 15 STOSW。 写入偏移地址 MOV AX,CS STOSW。 写入段地址 MOV AL,00110110B。 8253 初始化, 0 通道, 3 方式, HEX OUT 43H,AL MOV AX,11932。 初值= 11932 OUT 40H, AL MOV AL ,AH OUT 40H, AL IN AL,21H。 读 8259 的中段屏蔽寄存器 IMR PUSH AX。 压栈保护 MOV AL, 0FCH STI FOREVER: MOV DL,0FFH。 有键按下吗 ? MOV AH, 06H INT 21H JZ DISP。 无键按下则转显示 DISP CMP AL, 20H。 是空格键吗 ? JZ EXIT。 是则退出 DISP: MOV DX, OFFSET TENH。 不是则显示时间 MOV AH, 09H INT 21H MOV AL, SECOND。 取秒单元值 WAITCHA: CMP AL,SECOND。 改变否 ? JZ WAITCHA。 没变则等待 JMP FOREVER。 变则转 FOREVER EXIT: CLI。 有空格键按下退出 CLD POP AX OUT 21H,AL。 恢复 IMR MOV AL, 36H。 8253 初始化, 55ms。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。