本文主要是介绍8088单板机的端口地址与汇编驱动代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
8086 8088 CPU与外部打交道的对象主要是两个,一个是内存,一个是端口。例如板子上的8253、8255等芯片,都是以端口访问的形式出现的。
8088单板机的外部端口是通过这个74LS138译码器构成的,利用8088的地址总线A10,A9,A8 三位地址线进行译码获得,译出信号,一般接到了结构芯片的片选信号CS上。
代号 | 地址线 A19…..A12 | 地址线 A11 A10 A9 A8 | 地址线 A7 A6 A5 A4 A3 A2 A1 A0 | 端口地址 |
CS_LED | X………X | X 0 0 0 | X X X X X X X X | 0X000 |
CS_232 | X………X | X 0 0 1 | X X X X X X X X (A2 A1 A0用于片内寻址) | 0X100-0X107 |
CS_8255 | X………X | X 0 1 0 | X X X X X X X X (A1 A0用于片内寻址) | 0X200-0X203 |
CS_8253 | X………X | X 0 1 1 | X X X X X X X X (A1 A0用于片内寻址) | 0X300-0X303 |
CS_IC4 | X………X | X 1 0 0 | X X X X X X X X | 0X400 |
CS_IC5 | X………X | X 1 0 1 | X X X X X X X X | 0X500 |
CS_IC6 | X………X | X 1 1 0 | X X X X X X X X | 0X600 |
CS_IC7 | X………X | X 1 1 1 | X X X X X X X X | 0X700 |
下面是端口访问的一个简单例子,LED_8X端口,指向芯片74LS373,控制8个板上的LED。
找到8088开发板的示例程序
汇编程序如下,编译下载后,就可以看到板上的LED闪烁显示了。
;---------------------------------------------------------------------------------------------
;led_port equ 800h
led_port equ 00h
;---------------------------------------------------------------------------------------------
org 2000h ;程序将由监控bios下载到内存RAM的地址(0000:2000)
start:
;------------------------------------------------------
;init part
;------------------------------------------------------
mov ax,0
mov ds,ax
mov ss,ax
mov sp,1fffh
st001:
nop
;-----------------------------------------------------
;点亮系统板上的LED
;-----------------------------------------------------
;MOV DX,800H ;800H是板子上8个LED的端口地址号
mov dx,led_port
MOV AL,0f0H ;一亮一灭间隔点亮
OUT DX,AL
call DELAY
;MOV DX,800H ;800H是板子上8个LED的端口地址号
mov dx,led_port
MOV AL,00H ;一亮一灭间隔点亮
OUT DX,AL
call DELAY
;mov al,01010101b
;mov al,0f0h;
;out 25H,al
;hlt
jmp st001
jmp start
;------------------------------------------------------------
; DELAY PROC NEAR
;------------------------------------------------------------
;push
DELAY:
PUSH CX
PUSH BX
NOP
NOP
mov bx,10
del1:
mov cx,5882
del2:
loop del2
dec bx
jnz del1
;pop cx
;pop bx
POP BX
POP CX
RET
db 55h,55h,55h,55h,55h,55h ;程序结束标志,监控bios程序,收到后自动跳转到内存0000:2000处执行
;----------------------------------------------------------------------------------------------
这篇关于8088单板机的端口地址与汇编驱动代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!