计算机接口技术
实验报告
东北大学秦皇岛分校
实验一 可编程定时计数器8253
1、计数器
一、实验目的
掌握8253的基本工作原理和编程方法。
二、实验内容
按图16虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
三、编程提示
8253控制寄存器地址 283H
计数器0地址 280H
计数器1地址 281H
CLK0连接时钟 1MHZ
四、实验原理图
图16
五、连线
计数器0的CLK0端接实验箱单脉冲的高电平
计数器0的GATE0端接+5V的电源
计数器0的OUT0端接逻辑笔
六、源程序代码
ASM程序:
ioport equ 0d400h-0280h
io8253a equ ioport+283h
io8253b equ ioport+280h
code segment
assume cs:code
start: mov al,14h ;设置8253通道0为工作方式2,二进制计数
mov dx,io8253a
out dx,al
mov dx,io8253b ;送计数初值为0FH
mov al,0fh
out dx,al
lll: in al,dx ;读计数初值
call disp ;调显示子程序
push dx
mov ah,06h
mov dl,0ffh
int 21h
pop dx
jz lll
mov ah,4ch ;退出
int 21h
disp proc near ;显示子程序
push dx
and al,0fh ;首先取低四位
mov dl,al
cmp dl,9 ;判断是否<=9
jle num ;若是则为'0'-'9',ASCII码加30H
add dl,7 ;否则为'A'-'F',ASCII码加37H
num: add dl,30h
mov ah,02h ;显示
int 21h
mov dl,0dh ;加回车符
int 21h
mov dl,0ah ;加换行符
int 21h
pop dx
ret ;子程序返回
disp endp
code ends
end start
在此程序中,芯片8253的初始化程序片段是:
mov al,14h ;设置8253通道0为工作方式2,二进制计数
mov dx,io8253a
out dx,al
mov dx,io8253b ;送计数初值为0FH
mov al,0fh
out dx,al
七、源程序运行结果
屏幕依次显示1~f,16个二进制数,且每按一次单脉冲二进制数减一。当从f减到1时,逻辑笔的信号灯的红灯亮;当从2减到1时,逻辑笔的信号灯由红灯变更为绿灯。
2、计数器二
一、实验原理图:
按图17连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)
图17
二、源程序代码
ASM程序:
ioport equ 0d400h-0280h
io8253a equ ioport+280h
io8253b equ ioport+281h
io8253c equ ioport+283h
code segment
assume cs:code
start:mov dx,io8253c ;向8253写控制字
mov al,36h ;使0通道为工作方式3
out dx,al
mov ax,1000 ;写入循环计数初值1000
mov dx,io8253a
out dx,al ;先写入低字节
mov al,ah
out dx,al ;后写入高字节
mov dx,io8253c
mov al,76h ;设8253通道1工作方式2
out dx,al
mov ax,1000 ;写入循环计数初值1000
mov dx,io8253b
out dx,al ;先写低字节
mov al,ah
out dx,al ;后写高字节
mov ah,4ch ;程序退出
int 21h
code ends
end start
三、运行结果
逻辑笔处的红绿灯交替闪亮
实验二 模数转换器
1、电压转十六进制数
一、实验目的
了解模/数转换的基本原理,掌握ADC0809的使用方法。
二、实验内容
1、实验电路原理图如图18。通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
启动IN0开始转换: Out 0298 0
读取转换结果: In 0298
2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。
三、实验提示
1、ADC0809的IN0口地址为298H,IN1口地址为299H。
2、IN0单极性输入电压与转换后数字的关系为:N=Ui/(Uref/256)
其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。
3、一次A/D转换的程序可以为
MOV DX,口地址
OUT DX,AL ;启动转换
;延时
IN AL,DX ;读取转换结果放在AL中
四、实验原理图
图18
五、实验连线
ACD0809的ION电压输入端接RW1
ACD0809的CS接298H
多用电压表的正表笔接RW1
多用电压表的负表笔接地
六、源程序代码
ASM程序:
Ioport equ 0d400h-0280h
io0809a equ ioport+298h
code segment
assume cs:code
start:mov dx,io0809a ;启动A/D转换器
out dx,al
mov cx,0ffh ;延时
delay:loop delay
in al,dx ;从A/D转换器输入数据
mov bl,al ;将AL保存到BL
mov cl,4
shr al,cl ;将AL右移四位
call disp ;调显示子程序显示其高四位
mov al,bl
and al,0fh
call disp ;调显示子程序显示其低四位
mov ah,02
mov dl,20h ;加回车符
int 21h
mov dl,20h
int 21h
push dx
mov ah,06h ;判断是否有键按下
mov dl,0ffh
int 21h
pop dx
je start ;若没有转START
mov ah,4ch ;退出
int 21h
disp proc near ;显示子程序
mov dl,al
cmp dl,9 ;比较DL是否>9
jle ddd ;若不大于则为'0'-'9',加30h为其ASCII码
add dl,7 ;否则为'A'-'F',再加7
ddd: add dl,30h ;显示
mov ah,02
int 21h
ret
disp endp
code ends
end start
七、实验运行结果
电压与十六进制数的对应关系如下:
5V——————FF
4V——————C4
3V——————8D
2V——————57
1V——————1C
0V——————00
2、波形显示
一、实验内容
将JP3的1、2短接,使IN2处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。
二、实验原理图
三、实验源代码
ASM程序:
Ioport equ 0a400h-0280h
io0809b equ ioport+299h
code segment
assume cs:code
start: mov ax,0012h ;设屏幕显示方式为VGA 640X480模示
int 10h
and cx,0 ;cx为横坐标
draw: mov dx,io0809b ;启动A/D转换器通道1
out dx,al
mov bx,500 ;延时
delay: dec bx
jnz delay
in al,dx ;读入数据
mov ah,0
mov dx,368 ;dx为纵坐标
sub dx,ax
mov al,0ah ;设置颜色
mov ah,0ch ;画点
int 10h
cmp cx,639 ;一行是否满
jz start ;是则转start
inc cx ;继续画点
push dx
mov ah,06h ;是否有键按下
mov dl,0ffh
int 21h
pop dx
je draw ;无,则继续画点
mov ax,0003 ;有恢复屏幕为字符方式
int 10h
mov ah,4ch ;返回DOS
int 21h
code ends
end start
四、试验运行结果:
实验三 七段数码管
1、七段数码管动态显示
一、实验目的
掌握数码管显示数字的原理
二、实验内容
动态显示:按图19连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
三、编程提示
实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
四、实验原理图:
图19
五、实验源代码
ASM程序:
data segment
ioport equ 0d400h-0280h
io8255a equ ioport+288h
io8255b equ ioport+28bh
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
mesg1 db 0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,io8255b ;使8255的A口为输出方式
mov ax,80h
out dx,al
sss: mov dx,offset mesg1 ;显示提示信息
mov ah,09h
int 21h
mov ah,01 ;从键盘接收字符
int 21h
cmp al,'0' ;是否小于0
jl exit ;若是则退出
cmp al,'9' ;是否大于9
jg exit ;若是则退出
sub al,30h ;将所得字符的ASCII码减30H
mov bx,offset led ;bx为数码表的起始地址
xlat ;求出相应的段码
mov dx,io8255a ;从8255的A口输出
out dx,al
jmp sss ;转SSS
exit: mov ah,4ch ;返回DOS
int 21h
code ends
六、实验运行结果
当从键盘上输入0-9十个数字中的任意一个可以在数码管上显示出来
2、七段数码管静态显示
一、实验内容
动态显示:按图20连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255 C口的PC1,PC0。编程在两个数码管上显示“56”。
二、实验原理图
图20
三、实验源程序代码
ASM代码:
data segment
ioport equ 0d400h-0280h
io8255a equ ioport+28ah
io8255b equ ioport+28bh
io8255c equ ioport+288h
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码
buffer1 db 5,6 ;存放要显示的个位和十位
bz dw ? ;位码
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,io8255b ;将8255设为A口输出
mov al,80h
out dx,al
mov di,offset buffer1 ;设di为显示缓冲区
loop2: mov bh,02
lll: mov byte ptr bz,bh
push di
dec di
add di, bz
mov bl,[di] ;bl为要显示的数
pop di
mov al,0
mov dx,io8255a
out dx,al
mov bh,0
mov si,offset led ;置led数码表偏移地址为SI
add si,bx ;求出对应的led数码
mov al,byte ptr [si]
mov dx,io8255c ;自8255A的口输出
out dx,al
mov al,byte ptr bz ;使相应的数码管亮
mov dx,io8255a
out dx,al
mov cx,3000
delay: loop delay ;延时
mov bh,byte ptr bz
shr bh,1
jnz lll
mov dx,0ffh
mov ah,06
int 21h
je loop2 ;有键按下则退出
mov dx,io8255a
mov al,0 ;关掉数码管显示
out dx,al
mov ah,4ch ;返回
int 21h
code ends
end start
四、实验运行结果
数码管显示56并保持不变。
实验四 交通灯控制实验
一.实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二.实验内容
如图-29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。
三.编程提示:
十字路口交通灯的变化规律要求:
(1) 南北路口的绿灯、东西路口的红灯同时亮30秒左右。
(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3) 南北路口的红灯、东西路口的绿灯同时亮30秒左右。
(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5) 转(1)重复。
四.实验原理图
五.源程序代码
ASM程序:
;***********************************;
;* 十字路口红绿灯模拟演示程序 *;
;* 端口各灯的设置: *;
;* 1红 1黄 1绿 0 0 2红 2黄 2绿 *;
;***********************************;
io8255a equ 28ah-0280h
io8255b equ 28bh-0280h
io_port_addre equ 0cf8h ;32位配置地址端口
io_port_data equ 0cfch ;32位配置数据端口
io_plx_id equ 0540610b5h ;TPC卡设备及厂商ID
data segment
portc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能
db 81h,82h,80h,82h,80h,82h,80h ;的状态数据
db 0ffh ;结束标志
io_9054base_address db 4 DUP(0) ;TPC卡9054芯片I/O基地址暂存空间
io_base_address db 4 DUP(0) ;TPC卡I/O基地址暂存空间
memory_base_address db 4 DUP(0) ;TPC卡MEMORY基地址暂存空间
interrupt_line db 2 DUP(0) ;TPC卡中断号暂存空间
pcicardnotfind db 0dh,0ah,'TPC pci card not find or address/interrupt error !!!',0dh,0ah,'$'
io9054baseaddress db 0dh,0ah,'TPC pci card 9054 Chip I/O Base Address : ','$'
iobaseaddress db 0dh,0ah,'TPC pci card I/O Base Address : ','$'
memorybaseaddress db 0dh,0ah,'TPC pci card Memory Base Address : ','$'
intnumber db 0dh,0ah,'TPC pci card Interrupt Line : ','$'
enter_return db 0dh,0ah,'$'
data ends
stacks segment
db 100 dup(?)
stacks ends
code segment
assume cs:code,ds:data,SS:STACKS,es:data
.386 ;386模式编译
start:
mov ax,data
mov ds,ax
mov es,ax
mov ax,stacks
mov ss,ax
call findtpc1 ;查找TPC卡资源并显示
mov dx,word ptr io_base_address
add dx,io8255b
mov al,90h
out dx,al ;设置8255为C口输出
mov dx,word ptr io_base_address
add dx,io8255a
re_on: mov bx,0
on: mov al,portc1[bx]
cmp al,0ffh
jz re_on
out dx,al ;点亮相应的灯
inc bx
mov cx,20 ;参数赋初值
test al,21h ;是否有绿灯亮
jz de1 ;没有,短延时
mov cx,2000 ;有,长延时
de1: mov di,9000 ;di赋初值5000
de0: dec di ;减1计数
jnz de0 ;di不为0
loop de1
push dx
mov ah,06h
mov dl,0ffh
int 21h
pop dx
jz on ;没有,转到on
exit: mov ah,4ch ;返回DOS
int 21h
findtpc1 proc near ;查找TPC卡资源并显示
pushad
pushfd
mov ebx,080000000h
findtpc1_next:
add ebx,100h
cmp ebx,081000000h
jnz findtpc1_continue
mov dx,offset pcicardnotfind ;显示未找到tpc卡提示信息
mov ah,09h
int 21h
mov ah,4ch
int 21h ;退出
findtpc1_continue:
mov dx,io_port_addre
mov eax,ebx
out dx,eax ;写地址口
mov dx,io_port_data
in eax,dx ;读数据口
cmp eax,io_plx_id
jnz findtpc1_next ;检查是否发现tpc卡
mov dx,io_port_addre
mov eax,ebx
add eax,14h
out dx,eax ;写地址口
mov dx,io_port_data
in eax,dx ;读数据口
mov dword ptr io_9054base_address,eax
and eax,1
jz findtpc1_next ;检查是否为i/o基址信息
mov eax,dword ptr io_9054base_address
and eax,0fffffffeh
mov dword ptr io_9054base_address,eax ;去除i/o指示位并保存
mov dx,io_port_addre
mov eax,ebx
add eax,18h
out dx,eax ;写地址口
mov dx,io_port_data
in eax,dx ;读数据口
mov dword ptr io_base_address,eax
and eax,1
jz findtpc1_next ;检查是否为i/o基址信息
mov eax,dword ptr io_base_address
and eax,0fffffffeh
mov dword ptr io_base_address,eax ;去除i/o指示位并保存
mov dx,io_port_addre
mov eax,ebx
add eax,1ch
out dx,eax ;写地址口
mov dx,io_port_data
in eax,dx ;读数据口
mov dword ptr memory_base_address,eax
and eax,1h
jnz findtpc1_next ;检查是否为memory基址信息
mov eax,dword ptr memory_base_address
and eax,0fffffff0h
mov dword ptr memory_base_address,eax ;去除memory指示位并保存
mov dx,io_port_addre
mov eax,ebx
add eax,3ch
out dx,eax ;写地址口
mov dx,io_port_data
in eax,dx ;读数据口
and eax,0ffh
mov word ptr interrupt_line,ax ;去除interrupt其它指示位并保存
mov dx,offset io9054baseaddress ;显示i/o提示信息
mov ah,09h
int 21h
mov ax,word ptr io_9054base_address
call findtpc1_disp ;显示i/o基地址
mov dx,offset iobaseaddress ;显示i/o提示信息
mov ah,09h
int 21h
mov ax,word ptr io_base_address
call findtpc1_disp ;显示i/o基地址
mov dx,offset memorybaseaddress ;显示memory提示信息
mov ah,09h
int 21h
mov ax,word ptr memory_base_address+2
call findtpc1_disp ;显示memory基地址高16位
mov ax,word ptr memory_base_address
shr ax,16
call findtpc1_disp ;显示memory基地址低16位
mov dx,offset intnumber ;显示interrupt提示信息
mov ah,09h
int 21h
mov ax,word ptr interrupt_line
call findtpc1_disp ;显示interrupt号
mov dx,offset enter_return ;加回车符,换行符
mov ah,09h
int 21h
popfd
popad
ret
findtpc1 endp
findtpc1_disp proc near ;显示子程序
push dx
push cx
push bx
mov cx,4
mov bx,16
findtpc1_disp_loop1:
push ax
push cx
sub bx,4
mov cx,bx
shr ax,cl
and al,0fh ;首先取低四位
mov dl,al
cmp dl,9 ;判断是否<=9
jle findtpc1_disp_num ;若是则为'0'-'9',ASCII码加30H
add dl,7 ;否则为'A'-'F',ASCII码加37H
findtpc1_disp_num:
add dl,30h
mov ah,02h ;显示
int 21h
pop cx
pop ax
loop findtpc1_disp_loop1
pop bx
pop cx
pop dx
ret ;子程序返回
findtpc1_disp endp
code ends
end start
芯片8255的初始化程序片段是:
mov dx,word ptr io_base_address
add dx,io8255b
mov al,90h
out dx,al ;设置8255为C口输出
mov dx,word ptr io_base_address
add dx,io8255a
re_on: mov bx,0
on: mov al,portc1[bx]
cmp al,0ffh
jz re_on
out dx,al
六、试验运行结果:
修改程序第53、56和57行的cx、cx、di的值,可以改变红黄绿等的点亮时间,具体如下:
1)cx=6000、cx=40000、di=50000时,东西向的绿灯和黄灯依次分别点亮1秒,红灯灭,此时南北向的红灯点亮2秒,绿灯和黄灯灭;接着南北向的绿灯和黄灯依次分别点亮1秒,红灯灭,此时东西向的红灯点亮2秒,绿灯和黄灯灭。并依次循环。
2)cx=7000、cx=50000、di=60000时,东西向的绿灯和黄灯依次分别点亮2秒,红灯灭,此时南北向的红灯点亮4秒,绿灯和黄灯灭;接着南北向的绿灯和黄灯依次分别点亮2秒,红灯灭,此时东西向的红灯点亮4秒,绿灯和黄灯灭。并依次循环。
3)cx=8000、cx=65535、di=65535时,东西向的绿灯和黄灯依次分别点亮2.5秒,红灯灭,此时南北向的红灯点亮5秒,绿灯和黄灯灭;接着南北向的绿灯和黄灯依次分别点亮2.5秒,红灯灭,此时东西向的红灯点亮5秒,绿灯和黄灯灭。并依次循环。
4)cx=65535、cx=65535、di=65535时,东西向的绿灯点亮2.5秒,黄灯点亮12.5秒,同时黄灯闪烁的频率变慢,红灯灭,此时南北向的红灯点亮,15秒,绿灯和黄灯灭;接着南北向的绿灯点亮2.5秒,黄灯点亮12.5秒,同时黄灯闪烁的频率变慢,红灯灭,此时东西向的红灯点亮15秒,绿灯和黄灯灭。并依次循环。
河南省高等教育自学考试
实 验 报 告 册
汽车检测与维修专业(本科)
《微型计算机原理与接口技术》
市 地:_______________
考生姓名:_______________
准考证号:_______________
河南科技大学高等教育自学考试办公室
______年_____月
注 意 事 项
1、各助考单位可就近选择定点实验单位安排考生完成实验任务。定点实验单位必须根据自身实验条件,开出某一门课程的全部实验,并要求考生将这一门课程全部实验一次性全部完成。若定点实验单位不能开出课程全部实验,则考生必须另选其它定点单位完成这一门课程的实验。一门课程实验不允许考生跨单位分项完成,否则,实验成绩不予承认。
2、要求考生选择这一门课程至少3个实验,要求独立完成。
3、考生在实验前应认真预习实验指导书的有关内容,遵守实验操作规程,确保人身和设备安全,认真做好每一个实验,并独立完成实验报告,有问答题的实验,必须认真回答,不能空项。填写实验报告,必须使用黑或兰黑钢笔(插图可用铅笔),要求字迹整洁。
4、实验指导教师应按指导书要求,指导考生完成试验并认真批阅实验报告。确定初评成绩。填写您所负责的某一门课程的实验报告评分栏,加盖实验单位印章。
5、考生做实验时,应持本报告册。完成实验后由考绩所在助学单位统一送到主考学校。考核合格者的发给“实验环节考核合格证书”,作为考生取得毕业资格的依据之一。
目 录
一、实验一:DEBUG的启动及其基本命令的使用——————————1
二、实验二:仿真软件EMU8086的认识实验——————————— 5
三、实验三:存储器(RAM 6264)扩展————————————— 7
四、实验报告评分栏———————————————————— 9
一、实验学时
1学时。
二、实验目的
掌握DEBUG 的基本命令及其功能。
三、实验设备
计算机。
四、实验内容
DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
1、DEBUG程序的启动
在DOS提示符下,可键入命令:
C>DEBUG[d:][path][文件名][ 参数1][参数2]
其中文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。
在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。
2、DEBUG的主要命令
(1)汇编命令A,格式为:
-A[地址]
该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。
(2)反汇编命令U,有两种格式:
1)-U[地址]
该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
2)-U范围
该命令对指定范围的内存单元进行反汇编,例如:
-U 04BA:0100 0108或 –U 04BA:0100 L9
此二命令是等效的。
(3)运行命令G,格式为:
-G [=地址1][地址2[地址3。。。]]
其中地址1规定了运行起始地址,后面的若干地址均为断点地址。
(4)追踪命令T,有两种格式:
1)逐条指令追踪:
-T[=地址]
该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。
2)多条指令追踪:
-T[=地址][值]
该命令从指定地址起执行n条命令后停下来,n由[值]确定。
(5)显示内存单元内容的命令D,格式为:
-D[地址]或-D[范围]
(6)修改内存单元内容的命令E,它有两种格式:
1)用给定的内容代替指定范围的单元内容:
-E地址 内容表
例如:-E 2000:0100 F3 “XYZ” 8D
其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。
2)逐个单元相继地修改:
-E地址
例如:-E 100:
18E4:0100 89.78
此命令是将原100号单元的内容89改为78。78是程序员键入的。
(7)检查和修改寄存器内容的命令R,它有三种方式:
1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R
R命令显示中标志位状态的含义如下表所示:
2)显示和修改某个指定寄存器内容,格式为:
-R 寄存器名
例如打入:-R AX
系统将响应如下:
AX FIF4
:
表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:
-R BX
BX 0369
:059F
则BX内容由0369改为059F
3)显示和修改标志位状态,命令格式为:
-RF
系统将给出响应,如
OV DN EI NG ZR AC PE CY-
这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如
OV DN EI NG ZR AC PE CY-PONZDINV
(8)命名命令N,格式为:
-N 文件名
此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘。
(9)装入命令L,它有两种功能:
1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为:
-L 地址 驱动器 扇区号 扇区数
2)装入指定文件,格式为:
-L [地址]
此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。
在用L命令前,BX和CX中应包含所读文件的字节数。
(10)写命令W,有两种格式:
1)把数据写入磁盘的指定扇区:
-W 地址 驱动器 扇区号 扇区数
2)把数据写入指定文件中:
-W [地址]
此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。在用W命令前,BX和CX中应包含要写入文件的字节数。
(11)退出DEBUG命令Q,该命令格式为
Q
它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。
五、实验要求:
用汇编语言编写一个计算“3+5”的加法程序
六、实验报告:
1.实验目的
2.程序清单
3.试验中出现的问题及解决方法
4.写出在DEBUG状态下编写、运行程序的过程以及调试所中遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
一、实验学时
1学时。
二、实验目的
熟悉EMU8086的开发环境,为后续的汇编语言程序设计与调试运行做好准备。
三、实验设备
计算机。
四、实验内容
1.熟悉EMU8086开发环境的菜单命令以及工具栏按钮的功能。
2.熟悉汇编程序的编辑、编译、仿真运行及调试的基本过程。
五、实验步骤
1.进入EMU8086的开发环境,新建一个文件,使用“COM Template”选项。
2.在编辑窗口中的 ORG 100h 后键入如下程序:
3.使用Emulate仿真功能编译程序并进入Emulator仿真界面。如果编译过程中报错,请根据提示信息除错,然后重新编译直到通过。
4.在仿真界面中使用Single Step单步执行程序,观察程序的运行状况及各寄存器的变化(蓝色高亮显示)。利用ALU和FLAGS按钮可以查看运算过程及各标志位的变化情况。
5.程序运行结束后记录AX、BL和CX的值。(重新加载程序请使用RELOAD按钮)。
6.更改源程序里AX的初始值为7FF8H,重复步骤3~5。比较两次结果的不同之处,解释原因。(数值转换查看功能在MATH菜单中)
7.对已讲授的各类汇编指令用上面的步骤调试运行,加深对指令功能及要点的掌握。
六、实验报告
1.实验目的
2.程序清单
3.试验中出现的问题及解决方法
4.无符号数和有符号数在汇编程序里如何区分?
一、实验学时
2学时。
二、实验目的
1.熟悉随机存储器RAM 6264的使用方法及计算机扩展存储器的方法。
2.了解PC机62芯总线信号的定义及其选用方法。
3.掌握对外部存储器进行读、写的编程方法。
4.学习用软件编辑、汇编、连接和调试源程序。
三、实验设备
计算机;微机原理实验系统;RAM6264芯片。
四、实验内容
1.设计扩展一片数据存储器6264芯片实验系统的外部存储器。
2.设计一段程序,将一组数据(00H,01H,02H,…,0FEH,0FFH)传送到扩展的外部数据存储器6264中去。
五、实验原理
6264是8K×8位的静态随机读写存储器。微处理器通过数据总线、地址总线和控制总线与存储器连接。6264有13条地址线A0~A12。其片选信号由译码电路产生。计算机通过总线信号MEMR、MEMW对6264进行读写处理。
六.编程提示
1.通过实验接线图,确定扩展的6264在实验系统中的地址范围。
2.扩展的6264的段地址送入段寄存器DS,偏移地址送入BX。
七.实验步骤
1.按实验要求连接硬件线路;
2.编辑按实验要求设计的汇编语言源程序;
3.汇编、连接汇编语言源程序生成可执行文件;
4.装载可执行文件,调试、运行程序并检验、记录结果;
八.预习要求
1.复习有关存储器及其扩展的内容;
2.复习PC机62芯总线信号的内容;
3.按照实验要求事先设计好有关硬件线路;
4.按照实验要求事先设计、编写好汇编语言源程序。
九.实验报告
1.画出硬件原理图,分析各部分的功能。
2.写出程序清单并进行注释。
3.画出程序流程框图。
4.分析调试、运行结果。
5.RAM 6264的存储空间有多大?寻址范围是多少?
高等教育自学考试实验报告评分栏
完成实验数量:___________________________________________
实 验 单 位 :_______________________________________(公章)
实 验 日 期 :___________________________________________
指 导 教 师 :___________________________________________
指导教师初评成绩:_______________________________________
主考院校审定成绩:_______________________________________
审定成绩时间:___________________________________________
一实验目的1掌握8255A编程原理2掌握键盘的输入和数码管的显示3提高理论与实践相结合的能力强化所学内容二实验要求用8255A实现…
上海大学计算机学院计算机接口技术实验4专业计算机科学与技术班级周一13节姓名学号计算机工程与科学学院报告日期20xx年10月29日…
实验一:显示程序实验(20##年4月22日)1、实验目的及实验内容实验目的:1.掌握在PC机上以十六进制数形式显示数据的方法2.掌…
现代微机原理与接口技术接口部分实验报告学号09008112姓名马京亚成绩学号东南大学计算机科学与工程学院二一年十二月微机原理与接口…
武汉轻工大学现代微机原理与接口技术报告学号姓名班级成绩20xx年5月15日110511313王雪瑞网工一班实验1定时与中断接口程序…
一实验目的及要求目的通过本次综合实验使学生综合运用计算机接口与通信技术汇编语言以及电子技术等课程的内容为以后从事计算机检测与控制工…
微机原理与接口技术实验报告微机原理与接口技术系别专业班级姓名学号指导教师学年第学期微机原理与接口原理实验报告微机原理与接口技术实验…
《微机原理与接口技术》课程设计报告交通灯控制系统班级:学号:姓名:指导教师:成绩:20##年7月1日目录1、课程设计的目的和要求3…
实验一8255A应用数码管动态显示一实验目的1掌握8255A的工作方式编程原理和微机接口方法2了解LED数码管动态显示的工作原理及…