汇编代码题
2021/12/19 17:20:31
本文主要是介绍汇编代码题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前三道题参考汪神博客【微机原理与汇编语言】考点总结
4、 K0-K7接通I/O输入端口的低8位,L0-L7接通I/O输出端口的低8位,INL连接300IN,OUTL连接300OUT,实现如下功能:闭合K0开关,L0-L7依次点亮,间隔2s(调用Delay子程序),其它情况下,L0-L7全部熄灭。
;简单I/O口扩展 19200 ; 连线: ; 输入输出 INL ----- 端口地址 300IN ; 输入输出 i0~i7 --- 逻辑电平开关 K0~K7 ; 输入输出 OUTL ---- 端口地址 300OUT ; 输入输出 o0~o7 --- 发光二极管 L0~L7 ; 输入输出 D0~D7 --- 数据总线 D0~D7 CS_IO EQU 0300H CODE SEGMENT ASSUME CS:CODE START PROC NEAR MOV DX,CS_IO MOV DX,0300H MOV CL,00000001B MLOOP: IN AL,DX NOT AL TEST AL,01000000B JZ STOP MOV AL,CL OUT DX,AL ROL CL,1 CALL DELAY JMP MLOOP STOP: MOV AL,00000000B OUT DX,AL MOV CL,00000001B JMP MLOOP START ENDP DELAY PROC PUSH DX PUSH AX MOV DX,02H MOV AX,0 L1: SUB AX,1 SBB DX,0 CMP AX,0 JNE L1 CMP DX,0 JNE L1 POP AX POP DX RET DELAY ENDP CODE ENDS END START
5、 IMS连接393分频器的1A,1QD连接2A,2QD连接8253的CLK1,OUT1连接CLK2,OUT2连接一个发光二极管,8253的片选端CS连接300H端口,GATE1和GATE2连接+5V,编程实现发光二极管循环熄灭3秒,闪亮1秒。
; 8253定时计数器 ; 连线: ; 8253 CS ------ 端口地址 300CS ; PACK IMS ----- 393 1A ; 393 1QD ------ 8253 CLK1 ; 8253 OUT1 ---- 8253 CLK2 ; 8253 OUT2 ---- 发光二极管 L? ; 8253 GATE1 -- (A10)+5V ; 8253 GATE2 -- (A10)+5V ; 运行: ; 运行程序,发光二极管1s周期闪烁 CS8253 EQU 0303H COUNT0 EQU 0300H COUNT1 EQU 0301H COUNT2 EQU 0302H CODE SEGMENT ASSUME CS:CODE START PROC NEAR MOV DX,CS8253 MOV AL,01110110B OUT DX,AL MOV DX,COUNT1 MOV AX,19200 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,CS8253 MOV AL,10010100B OUT DX,AL MOV DX,COUNT2 MOV AX,4 OUT DX,AL JMP $ START ENDP CODE ENDS END START
6、 8255的A口接数码管的a-h,B口连接6个数码管的选通端0-5,8255的片选端CS连接300H端口,数码管显示0-3的编码存放到数据区的LED变量中,编程实现数码管依次显示0,1,2,3,间隔2秒。
; 8255 PA输入 PB输出 ; 连线: ; 8255 CS ---------- 端口地址 300CS ; 8255 PA7..PA0 ---- 逻辑电平开关 K7..K0 ; 8255 PB7..PB0 ---- 发光二极管 L7..L0 ; 运行: ; 全速运行程序,拨动K0~K7,观察L0~L7发光二极管显示 CS8255 EQU 0303H PORTA EQU 0300H PORTB EQU 0301H DATA SEGMENT BUF DB 11000000B,11111001B,10100100B,10110000B DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC NEAR MOV DX,CS8255 ;8255初始化 MOV AL,80H OUT DX,AL okok: mov si,offset BUF mov bl,4 MAIN: MOV DX,PORTA ;读PA数据 mov AL,[si] OUT DX,AL MOV DX,PORTB ;数据写PB mov al,000001B call delay OUT DX,al inc si sub bl,1 cmp bl,0 Ja MAIN jmp okok START ENDP delay proc push cx push bx mov cx ,0ffffh l0: mov bx,3 l1: sub bx,1 cmp bx,0 ja l1 dec cx cmp cx,0 ja l0 pop bx pop cx ret delay endp CODE ENDS END START
7、 8255的A口接数码管的a-h,B口连接6个数码管的选通端0-5,8255的片选端CS连接300H端口,数码管显示0-3的编码存放到数据区的LED变量中,编程实现如下功能:键盘输入‘0’-‘3’之间的字符,数码管显示对应的数值,键盘输入其它字符,数码管没变化。
; 8255 PA输入 PB输出 ; 连线: ; 8255 CS ---------- 端口地址 300CS ; 8255 PA7..PA0 ---- 逻辑电平开关 K7..K0 ; 8255 PB7..PB0 ---- 发光二极管 L7..L0 ; 运行: ; 全速运行程序,拨动K0~K7,观察L0~L7发光二极管显示 CS8255 EQU 0303H PORTA EQU 0300H PORTB EQU 0301H DATA SEGMENT BUF DB 11000000B,11111001B,10100100B,10110000B DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC NEAR MOV DX,CS8255 ;8255初始化 MOV AL,80H OUT DX,AL mov si,offset BUF MAIN: MOV DX,PORTA ;读PA数据 mov ah,1 int 21h sub al,48 mov ah,0 add si,ax mov AL,[si] OUT DX,AL MOV DX,PORTB ;数据写PB mov al,000001B OUT DX,al Jmp MAIN START ENDP CODE ENDS END START
这篇关于汇编代码题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南