8086汇编语言程序:8255并行接口实验
时间: 2023-12-24 20:52:40 浏览: 170
单片机可编程并行接口芯片8255的应用实验.docx
这里是一个简单的 8086 汇编语言程序,用于控制 8255 并行接口进行实验:
```
;8255并行接口实验
;端口地址定义
port_a equ 0a000h ;8255的端口A
port_b equ 0a001h ;8255的端口B
port_c equ 0a002h ;8255的端口C
control_word equ 0a003h ;8255的控制字
;数据段定义
data segment
msg1 db '8255并行接口实验', '$'
msg2 db '输入0-255之间的数,按回车键结束', '$'
msg3 db '输出数据为:$'
num db 0
temp db 0
data ends
;代码段定义
code segment
start:
;初始化控制字
mov al, 82h ;将控制字的值放入AL寄存器
out control_word, al ;输出控制字到控制字端口
;显示欢迎信息
mov ah, 09h ;设置功能号为09h,显示字符串
lea dx, msg1 ;将msg1的首地址放入DX寄存器
int 21h ;调用DOS中断21h,显示msg1
;显示输入提示信息
mov ah, 09h ;设置功能号为09h,显示字符串
lea dx, msg2 ;将msg2的首地址放入DX寄存器
int 21h ;调用DOS中断21h,显示msg2
;读取用户输入的数字
mov ah, 01h ;设置功能号为01h,等待用户输入
int 21h ;调用DOS中断21h,等待用户输入
sub al, 30h ;将输入的字符转换为数字
mov temp, al ;将转换后的数字存入temp变量
mov ah, 02h ;设置功能号为02h,显示字符
mov dl, al ;将输入的数字存入DL寄存器
int 21h ;调用DOS中断21h,显示输入的数字
;读取用户输入的数字
mov ah, 01h ;设置功能号为01h,等待用户输入
int 21h ;调用DOS中断21h,等待用户输入
sub al, 30h ;将输入的字符转换为数字
mov num, al ;将转换后的数字存入num变量
mov ah, 02h ;设置功能号为02h,显示字符
mov dl, al ;将输入的数字存入DL寄存器
int 21h ;调用DOS中断21h,显示输入的数字
;将输入的数字存入端口A
mov al, temp ;将temp变量中的数值放入AL寄存器
out port_a, al ;将AL寄存器中的数值输出到端口A
;将输入的数字存入端口B
mov al, num ;将num变量中的数值放入AL寄存器
out port_b, al ;将AL寄存器中的数值输出到端口B
;从端口C读取数据并显示
in al, port_c ;从端口C读取数据
mov ah, 09h ;设置功能号为09h,显示字符串
lea dx, msg3 ;将msg3的首地址放入DX寄存器
int 21h ;调用DOS中断21h,显示msg3
mov dl, al ;将读取的数据存入DL寄存器
add dl, 30h ;将数字转换为字符
mov ah, 02h ;设置功能号为02h,显示字符
int 21h ;调用DOS中断21h,显示读取的数据
;程序结束
mov ah, 4ch ;设置功能号为4ch,程序结束
int 21h ;调用DOS中断21h
code ends
end start
```
这个程序首先初始化了 8255 并行接口的控制字,然后显示欢迎信息和输入提示信息,并等待用户输入两个数字。接着,程序将输入的数字存入 8255 的端口 A 和端口 B,然后从端口 C 读取数据并显示出来。最后,程序结束。
需要注意的是,这个程序只是一个简单的示例,仅用于演示如何使用 8255 并行接口。实际的应用场景可能更加复杂,需要根据具体情况进行修改。
阅读全文