实验4异步串行通信接口编程.doc
文本预览下载声明
实验四 异步串行通信接口编程
实验目的
掌握8250编程方法。
学习DEBUG调试程序的使用方法。
实验准备
复习教材《微机接口技术及应用》有关8250编程内容。
参考“汇编语言编程设计”有关书籍,预习DEBUG调试程序的使用方法。
实验内容
(一)用EDIT进行文件编辑
步骤同实验2,文件名为COMMU.ASM
编译程序
程序汇编
C:\WINDOWS\SHY2〉MASM.EXE COMMU↓
显示 object filename [COMMU.OBJ] ↓
source listing[NUL.LST] COMMU.LST↓
cross reference[NUL.CRF] ↓
显示 Warring Errors 和Severe Errors信息
EDIT修改源程序后再汇编直至无错误提示通过汇编为止。
C:\WINDOWS\SHY2〉LINK COMMU↓
显示 Run File [SOUND.EXE] ↓
List File[NUL.MAP] ↓
Libraries[.LIB] ↓
查子目录中文件,可见SOUND.OBJ 、COMMU.LST、 SOUND.EXE文件已存在。
运行程序
C:\WINDOWS\SHY2〉COMMU↓
从键盘输入发送内容,以自测方式,接受发送内容并显示在屏幕上。
用DEBUG调试程序
进入DEBUG并装入程序COMMU.EXE,操作如下:
C:\WINDOWS\SHY2〉DEBUG COMMU.EXE↓
DEBUG以-来回答。
用反汇编命令显示程序目标码,操作如下:
-U↓
屏幕显示
12B5:0000 1E push ds
12B5:0001 B8 0000 mov ax,0
12B5:0004 50 push ax
12B5:0005 BA 03FB mov dx,3fbh
12B5:0008 B0 80 mov al,80h
12B5:000A EE out dx,al
12B5:000B BA 03F8 mov dx,3f8h
12B5:000E B0 60 mov al,60h
?
?
?
所示信息从左至右依次为:
段地址:偏移地址,机器语言指令,汇编语言指令
查看程序目标码,并记录需设置断点处的地址。
设置断点,用G命令分段运行程序,操作如下:
-G××↓(××为断点处的偏移地址的低字节)
如键入G14,屏幕显示
AX=0060 BX=0000 CX=0176 DX=03F9 SP=00FC BP=0000 SI=0000 DI=0000
DS=1295 ES=1295 SS=12A5 CS=12B5 IP=0014 NV UP EI PL NZ NA PO NC
12B5:0014 B000 MOV AL,00
程序停在断点处,显示内容为所有寄存器以及各标志位的当前值,最后一行给出下一条将要执行的指令地址、机器语言、及汇编语言。
记录有关内容,填写汇编语言程序注释中要求的内容。
设置下一断点,用G命令继续运行程序。
实验报告
打印源程序SOUND.ASM清单,填空注释。
参考程序
stack segment para stack’stack’
db 256 dup(0)
stack ends
code segment para publiccode
start proc far
assume cs:code
push ds
mov ax,0
push ax
mov dx,3fbh
mov al,80h
out dx,al
mov dx,3f8h
mov al,60h
out dx,al
mov dx,3f9h
mov al,0
out dx,al
mov dx,3fbh
mov al,0ah
out dx,al
mov dx,3fch
mov al,13h
out dx,al
mov dx,3f9h
mov al,0
out dx,al
fore:
mov dx,3fdh
in al,dx
test al,1eh
jnz error
test al,01h
jnz rece
test al,20h
jz fore
mov ah,1
int 16h
jz fore
mov ah,0
int 16h
mov dx,3f8h
out dx,al
jmp fore
rece:mov dx,3f8h
in al,dx
显示全部