汇编语言与微机原理 期末半开卷复习整理(下)

简介: 汇编语言与微机原理 期末半开卷复习整理(下)

输入输出

8086采用I/O端口独立编址

in AL/AX,imm8/DX

out imm8/DX,AL/AX

大于0FFH的端口只能存在DX

读外设(查询)

status:in al,dx
  test al,80H;//测标志位
  jz status
  mov dx,100h
  in al,dx

写外设(查询)

status:mov dx,102H
  in al,dx
  test al,80H
  jnz status;//D7=1,忙,继续查
  mov dx,100h
  mov al,char
  out dx,al

74LS273:锁存。输出锁存寄存器。

74LS244:缓冲。输入缓冲,输出锁存。

image.png


输入时序

输出时序


image.png

中断与8259

传送指令装入中断向量

mov ax,0
mov es,ax
mov bx,N*4;//N为中断类型号
mov ax,offset intproc
mov es:[bx],ax
mov ax,seg intporc
mov es:[bx+2],ax
sti


image.png


in al,81H
and al,11111101B;IR1开放中断
out 81H,al

OCW2:优先级循环方式和发中断结束命令

EOI=1发中断结束,清除相应位

CW3:查询字

mov al,0AH;读IRR的OCW3
out 20H,al
in al,20H;读IRR到AL

中断服务子程序整体流程:保护现场、开中断、中断处理、关中断、恢复现场、中断返回。

intproc proc far
  push ax
  push ds
  sti
  mov ax,seg done
  mov ds,ax
  in al,0a0h;读开关状态
  out 0c0h,al;输出控制led
  cmp al,0ffh
  jnz exit
  int al,82h;中断屏蔽
  or al,00000100B
  out 82h,al
exit:
  cli
  mov al,20H;EOI
  out 80H,al
  pop ds
  pop ax
  iret
intproc endp

8255


image.png

image.pngimage.png

输入时序图

输出时序图

方式控制字


image.png

例:

mov dx,303H
mov al,81H
out dx,al
mov al,0FH
out dx,al;(PC7=1)
prn:
  mov dx,302H
  in al,dx
  test al,04h
  jz prn;//查询输入
mov dx,300H;A口
mov al,ah;//ah=打印数据
out dx,al
mov dx,303H
mov al,0eH;STB#=0
out dx,al
nop
nop
mov al,0FH;STB#=1
out dx,al

8254/8253奇数骑

image.png

mov al,10H
mov dx,PORT_CTRL
out dx,al
mov al,100
mov dx,PORT_0
out dx,al
mov al,76H
mov dx,PORT_CTRL
out dx,al
mov ax,2000
mov dx,PORT_1
out dx,al
mov al,ah;写高8位
out dx,al

数字信号与模拟信号


image.png

双缓冲控制:

mov dx,portx
out dx,xdata
mov dx,porty
out dx,ydata
mov ax,portcon
out dx,al
call delay

读8路电压转换

lea di,buf
mov cx,8
mov dx,300
convert:
  out dx,al;启动转换
  push dx
  mov dx,310H
state:
  in al,dx;读EOC
  test al,20H;D5(EOC)为1?
  jz state
pop dx
in al,dx;读取结果
mov [di],al
add dx,2;下一模拟通道
add di,2
loop convert

0832锯齿波

image.png

mov dx,330H
mov al,00H
aga:
  out dx,al
  call delay
  inc al
  jmp aga
delay proc
  push cx
  mov cx,10
  loop $
  pop cx
  ret
delay endp


目录
相关文章
|
6月前
|
API 调度
2.3.1 协程设计原理与汇编实现
2.3.1 协程设计原理与汇编实现
|
4月前
|
编译器
8086 汇编笔记(八):转移指令的原理
8086 汇编笔记(八):转移指令的原理
|
6月前
|
存储 SQL NoSQL
协程的设计原理与汇编实现
协程的设计原理与汇编实现
|
6月前
|
存储 前端开发 rax
不一样的编程方式 —— 协程(设计原理与汇编实现)
不一样的编程方式 —— 协程(设计原理与汇编实现)
|
存储 关系型数据库 MySQL
2.3.1 协程设计原理与汇编实现
c++的这样的内部变量还有哪些?都是什么含义? 非协程链接mysql的过程是怎样的?
37 0
|
存储 数据管理 编译器
Go的汇编原理
为什么要在Go语言中使用汇编?
87 0
|
机器学习/深度学习 算法 数据格式
【微机原理笔记】第 4 章 - 8086 汇编语言程序设计
【微机原理笔记】第 4 章 - 8086 汇编语言程序设计
460 0
汇编语言与微机原理 期末半开卷复习整理(上)
汇编语言与微机原理 期末半开卷复习整理(上)
209 0
汇编语言与微机原理 期末半开卷复习整理(上)
|
6月前
|
存储 Unix 编译器
汇编语言----X86汇编指令
汇编语言----X86汇编指令
224 2
|
1月前
|
存储 移动开发 C语言
【ARM汇编速成】零基础入门汇编语言之指令集(三)
【ARM汇编速成】零基础入门汇编语言之指令集(三)
下一篇
无影云桌面