文档库 最新最全的文档下载
当前位置:文档库 › 微机原理与接口技术试验报告

微机原理与接口技术试验报告

微机原理与接口技术试验报告
微机原理与接口技术试验报告

微机原理与接口技术

实验报告

姓名

学号

班级

指导教师戴胜华

时间2013年12月

一、I/O地址译码与交通灯控制实验

一.实验目的

通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。

二.实验内容

如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。

十字路口交通灯的变化规律要求:

(1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。

(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。

(3)南北路口的红灯、东西路口的绿灯同时亮3秒左右。

(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。

(5)转(1)重复。

8255动态分配地址: 控制寄存器: 0EC0BH

A口地址: 0EC08H

C口地址: 0EC0AH

三.程序流程图和程序清单

DATA SEGMENT

X DB ?

DATA ENDS

STACK1 SEGMENT STACK

DW 100H DUP(0)

STACK1 ENDS

CODE SEGMENT

ASSUME

CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA

MOV DS,AX

;---------------INIT----------------

MOV DX,0EC0BH ;写控制字

MOV AL,80H

OUT DX,AL L3: MOV DX,0EC0AH

MOV AL,24H ;南北绿灯,东西红灯亮

OUT DX,AL

CALL DELAY

CALL DELAY ;长延时,3s左右CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

MOV BL,8

MOV AL,04H

L0: XOR AL,40H ;南北黄灯闪,东西红灯亮

OUT DX,AL

CALL DELAY ;延时

CALL DELAY

DEC BL ;闪烁几次

JNZ L0

CALL DELAY

MOV AL,81H ;南北红灯亮,东西绿灯亮

OUT DX,AL

CALL DELAY

CALL DELAY

CALL DELAY ;长延时,3s左右

CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

MOV BL,9

MOV AL,80H

L1: XOR AL,02H ;南北红灯亮,东西黄灯闪

OUT DX,AL

CALL DELAY ;延时

CALL DELAY

DEC BL

JNZ L1 ;闪烁几次

CALL DELAY

MOV DL,0FFH

MOV AH,06H

INT 21H

JZ L3 ;六号功能判断若无字符输入ZF=1继续循环

;------------------------------

MOV AH,4CH

INT 21H

;-----------延时函数------------

DELAY : PUSH CX

PUSH DX

MOV CX,1FFFH

LOP1: MOV DX,0FFFFH

LOP2: DEC DX

JNZ LOP2

LOOP LOP1

POP DX

POP CX

RET

CODE ENDS

END START

四、总结

这是我们微机实验的第一次实验,以前的实验都是要么是硬件实验,要么是软件实验,这样又要连接电路,又要编写程序的实验这还是我第一次做,因此这次实验对我来说是一次全新的体验。这次实验我更加深入地了解了微机接口和汇编语言,对8255的芯片了解以及编程的学习不仅停留在书本上,自己的动手能力也得到了很大的提升。

二、可编程定时时钟/计数器(8253)

一、实验目的

掌握8253的基本工作原理和编程方法。

二、实验内容

1.按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动

逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

图5-1

2.按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。

图5-2

三.实验原理

8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。作计数器时,要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。

8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。本实验用到的是方式0—计数结束中断。在写入计数值N之后的第一个CLK的下降沿将N装入计数执行单元,待下一个CLK的下降沿到来且门控信号GATE为高电平时,通道开始启动计数。在计数过程中,OUT一直保持低电平,直到计数达“0”时,OUT输出由低电平变为高

电平,并且保持高电平。

8253动态分配地址: 控制寄存器: 0EC03H

计数器0地址: 0EC00H

计数器1地址: 0EC01H

四.程序流程图和程序清单

1)

CODE SEGMENT ;段定义开始(CODE段)

ASSUME CS:CODE ;规定CODE为代码段

START:MOV AL,10H ;设置控制字00010000(计数器0,方式0,写两个字节,二进制计数)

MOV DX,283H ;把控制寄存器地址放在DX寄存器中

OUT DX,AL ;将AL的值送入DX端口

MOV DX,280H ;把计数器0地址放在DX寄存器中

MOV AL,0FH ;将0FH存入AL寄存器

OUT DX,AL ;将此时AL的值送入DX端口

LP1: IN AL,DX ;从DX端口读入8位,放在AL寄存器中

CALL DISP ;调用DISP

PUSH DX ;将DX内容保存到堆栈段

MOV AH,06H ;将06H存入AH,为了下句调用21中断

MOV DL,0FFH ;将0FFH存入DL

INT 21H ;调用21中断

POP DX ;将DX的内容推出栈段

JZ LP1 ;如果DX的内容是0,就跳转到LP1

MOV AH,4CH ;将4CH存入AH,为了下句调用21中断

INT 21H ;调用21中断

DISP PROC NEAR ;定义一个名为DISP的子程序

PUSH DX ;把DX的内容保存到堆栈段中

AND AL,0FH ;将AL寄存器的内容与0FH进行“与”运算,再把结果存入AL中MOV DL,AL ;将AL的值送入DL寄存器

CMP DL,9 ;比较DL中的值与9的大小

JLE NUM ;如果DL的值小于或等于9时,则跳转到NUM

ADD DL,7 ;将DL的值与7进行相加后,再送入DL中

NUM: ADD DL,30H ;将DL的值与30H进行相加后,再送入DL中

MOV AH,02H ;将02H存入AH

INT 21H ;调用DOS21中断

MOV DL,0DH ;结合“MOV AH,02H”就是说输出0DH

INT 21H ;调用中断指令

MOV DL,0AH ;结合“MOV AH,02H”就是说输出0AH

INT 21H ;调用DOS21中断

POP DX ;将DX的内容推出栈段

RET ;子程序在功能完成后返回调用程序继续执行

DISP ENDP ;子程序结束

CODE ENDS ;代码段结束

END START ;程序结束

2)

CODE SEGMENT ;段定义开始(CODE段)

ASSUME CS:CODE ;规定CODE为代码段

START:MOV DX,283H ;把控制寄存器地址放在DX寄存器中

MOV AL,36H ;设置控制字00110110(计数器0,方式3,写两个字节,二进制计数)

OUT DX,AL ;将AL的值送入DX端口

MOV AX,1000H ;该语句是立即寻址方式,就是把1000H这个数赋给AX

MOV DX,280H ;把计数器0地址放在DX寄存器中

OUT DX,AL ;将AL的值送入DX端口

MOV AL,AH ;将AX的高8位存入AL寄存器中

OUT DX,AL ;将此时AL的值送入DX端口

MOV DX,283H ;把端口地址放在DX寄存器中

MOV AL,76H ;设置控制字01110110(计数器1,方式3,写两个字节,二进制计数)

OUT DX,AL ;将AL的值送入DX端口

MOV AX,1000H ;把1000H赋给AX

MOV DX,281H ;把端口地址放在DX寄存器中

OUT DX,AL ;将AX的低8位送入DX端口

MOV AL,AH ;将AX的高8位存入AL寄存器中

OUT DX,AL ;将AL的值送入DX端口

MOV AH,4CH ;将4CH存入AH

INT 21H ;调用DOS21中断

CODE ENDS ;代码段结束

END START ;程序结束

五、总结

通过这次实验,我再一次巩固了8253的初始化、工作方式以及编程的方法等等。在此次实验中我从前一次的实验的什么都不知道的状态中走了出来,能比较熟练地使用该调试软件。而在硬件连接方面,我也能按照电路图熟悉地连接出来。在实验过程中,一开始出现了输入程序,屏幕无反应的情况,之后检查才发现原来是我的程序的入口地址写错了。因此这次实验同时也提醒我无论做什么事情都需要踏实认真,这样才能将事情做好。

三、中断实验(纯DOS)

一、实验目的

1、掌握PC机中断处理系统的基本原理。

2、学会编写中断服务程序。

二、实验原理与内容

1、实验原理

PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT 机内有一片8259中断控制器对外可以提供8个中断源:

中断源中断类型号中断功能

IRQ0 08H 时钟

IRQ1 09H 键盘

IRQ2 0AH 保留

IRQ3 OBH 串行口2

IRQ4 0CH 串行口1

IRQ5 0DH 硬盘

IRQ6 0EH 软盘

IRQ7 0FH 并行打印机

8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供16个中断源:

中断源中断类型号中断功能

52

IRQ8 070H 实时时钟

IRQ9 071H 用户中断

IRQ10 072H 保留

IRQ11 O73H 保留

IRQ12 074H 保留

IRQ13 075H 协处理器

IRQ14 076H 硬盘

IRQ15 077H 保留

PCI总线中的中断线只有四根,INTA#、INTB#、INTC#、INTD#,它们需要通过P&P的设置来和某一根中断相连接才能进行中断申请。

2、实验内容

实验电路如图31,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。要求每按一次开关产生一次中断,在屏幕上显示一次“TPC pci card Interrupt”,中断10次后程序退出。

三、编程提示

1. 由于9054的驱动程序影响直写9054芯片的控制寄存器,中断实验需要在纯DOS的环境中才能正常运行。这里指的纯DOS环境是指微机启动时按F8键进入的DOS环境。WINDOWS 重启进入MSDOS方式由于系统资源被重新规划过,所以也不能正常实验。

2. 由于TPC卡使用PCI总线,所以分配的中断号每台微机可能都不同,编程时需要了解当前的微机使用那个中断号并进行设置,获取方法请参看汇编程序使用方法的介绍。(也可使用自动获取资源分配的程序取得中断号)

3. 在纯DOS环境下,有些微机的BIOS设置中有将资源保留给ISA总线使用的选项,致使在纯DOS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就无法做实验,这时需要将此选项修改为使用即插即用。

4. 在纯DOS环境下,有些微机的BIOS设置中有使用即插即用操作系统的选项,如果在使用即插即用操作系统状态下,BIOS将不会给TPC卡分配系统资源,致使在纯DOS环境(WINDOWS 环境下不会出现此问题)下PCI总线无法获得系统资源,也就无法做实验,这时需要将此选项修改为不使用即插即用操作系统。

5. 由于TPC卡使用9054芯片连接微机,所以在编程使用微机中断前需要使能9054的中断功能,代码如下:

mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,使能中断

in ax,dx

or ax,0900h

out dx,ax

其中IOPORT_CENT是9054芯片寄存器组的I/O起始地址,每台微机可能都不同,编程时需要了解当前的微机使用哪段并进行设置,获取方法请参看本书结尾部分的介绍。(也可使用自动获取资源分配的程序取得),+68H的偏移是关于中断使能的寄存器地址,设置含义如下:

程序退出前还要关闭9054的中断,代码如下:

mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,关闭中断

in ax,dx

and ax,0f7ffh

out dx,ax

6. PC机中断控制器8259 的地址为20H、21H,编程时要根据中断类型号设置中断矢量,8259中断屏蔽寄存器IMR对应位要清零(允许中断),中断服务结束返回前要使用中断结束命令:

MOV AL,20H

OUT 20H,AL

中断结束返回DOS时应将IMR对应位置1,以关闭中断。

四、参考流程图

data segment int_vect EQU 071H ;中断0-7的向量

为:08h-0fh,中断8-15的向量为:70h-77h

55

irq_mask_2_7 equ 011111011b ;中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零

irq_mask_9_15 equ 011111101b ;中断0-7时全一,中断8-15时从低至高相应位为零ioport_cent equ 0d800h ;tpc 卡中9054芯片的io地址

csreg dw ?

ipreg dw ? ;旧中断向量保存空间

irq_times dw 00h ;中断计数

msg1 db 0dh,0ah,'TPC pci card Interrupt',0dh,0ah,'$'

msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$'

msg3 db 0dh,0ah,'Press DMC to interrupt 10 times and exit!',0dh,0ah,'$'

data ends

stacks segment

db 100 dup (?)

stacks ends

code segment

assume cs:code,ds:data,ss:stacks,es:data start:

;Enable Local Interrupt Input

.386

cli

mov ax,data

mov ds,ax

mov es,ax

mov ax,stacks

mov ss,ax

mov dx,ioport_cent+68h ;设置tpc 卡中9054芯片io口,使能中断

in ax,dx

or ax,0900h

out dx,ax

mov al,int_vect ;保存原中断向量

mov ah,35h

int 21h

mov ax,es

mov csreg,ax

mov ipreg,bx mov ax,cs ;设置新中断向量

56

mov ds,ax

mov dx,offset int_proc

mov al,int_vect

mov ah,25h

int 21h

in al, 21h ;设置中断掩码

and al, irq_mask_2_7

out 21h, al

in al, 0a1h

and al, irq_mask_9_15

out 0a1h, al

mov ax,data

mov ds,ax

mov dx,offset msg2

mov ah,09h

int 21h

mov dx,offset msg3

mov ah,09h

int 21h

mov irq_times,0ah

sti

loop1:

cmp irq_times,0 ;等待中断并判断中断10次后退出

jz exit

mov ah,1

int 16h

jnz exit ;按任意键退出

jmp loop1

exit: cli

mov bl, irq_mask_2_7 ;恢复中断掩码

not bl

in al, 21h

or al, bl

out 21h, al

mov bl, irq_mask_9_15

not bl

in al, 0a1h

57

or al, bl

out 0a1h, al

mov dx,ipreg ;恢复原中断向量

mov ax,csreg

mov ds,ax

mov ah,25h

mov al,int_vect

int 21h

mov dx,ioport_cent+68h ;设置tpc 卡中9054芯片io口,关闭中断

in ax,dx

and ax,0f7ffh

out dx,ax

mov ax,4c00h

int 21h

int_proc proc far ;中断处理程序

cli

push ax

push dx

push ds dec irq_times

mov ax,data ;Interrupt to do mov ds,ax

mov dx,offset msg1

mov ah,09h

int 21h

mov al,20h ;Send EOI

out 0a0h,al

out 20h,al

pop ds

pop dx

pop ax

sti

iret

int_proc endp

code ends

五、总结

此次中断的实验,这次实验是在纯DOS的环境下操作的,因此这次实验我学会了可编程中断控制器8259 的结构、中断申请、中断响应、中断处理、中断返回等中断原理,还学习到了一些在DOS操作系统下的指令和操作方法。这次实验老师说比较难因此给了我们源程序,虽然一开始对这个很长的程序感到很头疼,不过最后还是硬着头皮把这段程序看完了,之中也请过助教学长学姐,也对程序的理解更深地理解了一层。

四、模/数转换器

一、实验目的

了解模/数转换的基本原理,掌握ADC0809的使用方法。

二、实验内容

1、实验电路原理图如图38。通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。

启动IN0开始转换: Out 0298 0

读取转换结果: In 0298

2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。

3、将JP3的1、2短接,使IN2处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。

三、实验提示

1、ADC0809的IN0口地址为298H,IN1口地址为299H。

2、IN0单极性输入电压与转换后数字的关系为:

其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。

3、一次A/D转换的程序可以为

MOV DX,口地址

OUT DX,AL ;启动转换

;延时

IN AL,DX ;读取转换结果放在AL中

四、参考流程图

五、参考程序1:AD_1.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

六、总结

有了前几次实验的经验,这次实验对我来说变得容易了很多。这次数模转换实验硬件连接并不算难,程序也不算难,不过数模转换在实际的应用中是十分广泛的。通过本次的AD 实验,我学会了如何让A/D转换器与计算机连接,以及如何初始化等等。

五、串行通讯

一、实验目的

1、进一步了解串行通信的基本原理。

2、掌握串行接口芯片8250的工作原理和编程方法。

3、熟悉PC机串行口的基本连接方法

二、实验内容

1、PC机RS-232串口自发自收。

按照PC机串口自发自收的连接方法连线。编写PC机自发自收串行通信程序,要求:从键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。

2、两台PC机间RS-232串口通信。

按照PC机RS-232串口直接互连的方法连接两台PC机。编写PC机直接互连串行通信程序;要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。当键入感叹号“!”,结束收发过程。

三.实验原理

1)本实验为异步通信:以字符为单位进行传送,每传送一个字符,以起始位作为开始标志,以停止位作为结束标志。

异步串行通信的工作过程是:传送开始后,接收设备不断地检测传输线是否有起始位到来,当接收到一系列的“1”(空闲或停止位)之后,检测到第一个“0”,说明起始位出现,就开始接收所规定的数据位、奇偶校验位及停止位。经过接收器处理,将停止位去掉,把数据位拼装成一字节数据,并且经奇偶校验无错误,才算是正确地接收到了一个字符。当一个字符接收完毕,接收设备又继续测试传输线,监视“0”电平的到来(下一个字符的开始),直到全部数据接收完毕。

2)8250各部分功能说明

8250片内有10个寄存器,其中有几个是共用地址的,其识别由线路控制寄存器(LCR)的最高位DLAB来决定。各寄存器的地址和格式如下所示:.

3)数据发送和接收:

四.程序清单

1.自发自收

DATA SEGMENT

CHL DB 0AH,0DH,'$' ;换行字符串DATA ENDS

STACK1 SEGMENT STACK

DW 100 DUP(0)

STACK1 ENDS

CODE SEGMENT

ASSUME

CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA

MOV DS,AX

;--------------INIT----------------

MOV DX,3FBH ;

MOV AL,80H ;DLAB=1

OUT DX,AL

MOV AX,0CH ;N=12

BAUD=9600bps

MOV DX,3F8H ;低位

OUT DX,AL

MOV AL,AH

INC DX

OUT DX,AL

MOV AL,03H ;八位数据,1停止,无校验

MOV DX,3FBH ;线路控制REG

OUT DX,AL

MOV AL,0 ;屏蔽全部中断

MOV DX,3F9H

OUT DX,AL

WAIT1: MOV DX,3FDH ;读线路状态寄存器

IN AL,DX

TEST AL,1EH ;判断是否有错

JNZ ERROR

TEST AL,01H ;判断是否收到

JNZ RECEIVE

TEST AL,20H ;判断发送端是否空

JZ WAIT1

MOV DL,0FFH ;六号功能调用读入待发送数据

MOV AH,06H

INT 21H

JZ WAIT1

MOV DX,3F8H ;写发送REG

OUT DX,AL

JMP WAIT1 ;返回WAIT1

CHAR: PUSH AX

MOV DL,AL ;显示接收

MOV AH,02H

INT 21H

MOV DX,OFFSET CHL;输出字符串换行

MOV AH,09H

INT 21H

POP AX

JMP WAIT1

ERROR: MOV DX,3FDH

IN AL,DX

MOV DL,'?' ;对于错误显示'?"

MOV AH,02H

INT 21H

JMP WAIT1

RECEIVE:MOV DX,3F8H

IN AL,DX ;读数据接收寄存器

CMP AL,'!' ;判断是否结束JNE CHAR

;------------------------------

MOV AH,4CH

INT 21H

CODE ENDS

END START

2.双机通信(1)发送端:

CODE SEGMENT

ASSUME CS:CODE

START: MOV

AL,80H ;8250初始化,设DLAB=1

MOV DX,3FBH

OUT DX,AL

MOV AX,30H

MOV DX,3F8H

OUT DX,AL ;写入除数低字节

MOV AL,AH

INC DX

OUT DX,AL ;写入除数高字节

MOV AL,0AH ;7位数据,1位停止,奇校验

MOV DX,3FBH

OUT DX,AL ;写入线路控制寄存器

MOV AL,03H

MOV DX,3FCH

OUT DX,AL ;写入Modem控制寄存器

MOV AL,0

MOV DX,3F9H

OUT DX,AL ;写中断允许寄存器,屏蔽所有中断

WAIT1: MOV DX,3FDH ;读线路状态寄存器

IN AL,DX

TEST AL,1EH ;出错否

JNZ ERROR

;TEST AL,01H ;接收数据就绪否

;JNZ SEND ;发送

TEST AL,20H ;发送寄存器空否,不空,返回等待

JZ WAIT1

SEND: MOV AH,1

INT 21H ;读键盘

CMP AL,21H ;是'!'?

JZ EXIT ;是,返回操作系统

MOV DX,3F8H ;不是,则发送

OUT DX,AL

JMP WAIT1 ;返回等待

ERROR: MOV DX,3FDH ;出错则清除线路状态寄存器

IN AL,DX

MOV DL,'?' ;显示'?'

MOV AH,02H

INT 21H

JMP WAIT1

EXIT: MOV AH,4CH

INT 21H

CODE ENDS

END START

(2)接收端:

CODE SEGMENT

ASSUME CS:CODE

START: MOV

微机原理与接口技术(第三版)课本习题答案

第二章 8086体系结构与80x86CPU 1.8086CPU由哪两部分构成它们的主要功能是什么 答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。 2.8086CPU预取指令队列有什么好处8086CPU内部的并行操作体现在哪里答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。8086CPU 内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。 5.简述8086系统中物理地址的形成过程。8086系统中的物理地址最多有多少个逻辑地址呢答:8086系统中的物理地址是由20根地址总线形成的。8086系统采用分段并附以地址偏移量办法形成20位的物理地址。采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。通过一个20位的地址加法器将这两个地址相加形成物理地址。具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。逻辑地址由段基址和偏移地址两部分构成,都是无符号的16位二进制数,程序设计时采用逻辑地址,也是1MB。 6.8086系统中的存储器为什么要采用分段结构有什么好处 答:8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址

微机原理与接口技术实验报告

微机原理与接口技术实验报告 班级:自动化(铁道信号) 姓名: ***** 学号: 1121**** 授课教师:福恩

目录 1.实验一 (3) 2. 实验二 (8) 3.实验三 (13) 4.实验四 (22) 5.实验五 (26) 6.实验六 (33) 7.参考文献 (38)

实验一交通灯控制实验 一.实验目的 通过应用接口技术设计十字路口、复杂路口交通灯控制系统,学会应用“微机原理与接口技术”课程所学的X86汇编语言和接口技术掌握可编程并行接口芯片的硬件设计、软件编程,实现十字路口交通灯的模拟控制并思考计算机如何应用在各种控制系统中。 (1)掌握利用X86汇编语言技巧 (2)掌握X86微处理器与可编程并行接口芯片8255A硬件电路设计 (3)熟悉模拟交通灯控制的实现方法并思考如何应用在实际中。 二.实验容 设计一个交通控制系统,该控制系统工作后,交通灯按照如下规律变化: (1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。 (2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。 (3)南北路口的红、东西路口的绿灯同时亮3秒。 (4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。 (5)返回(1)依次循环。 三.实验电路 如下图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。 8255动态分配地址: 控制寄存器:0EC0BH A口地址: 0EC08H C口地址: 0EC0AH

红黄绿红黄绿 图1-1 交通灯实验电路图四.程序流程图 五.源程序 CODE SEGMENT ASSUME CS:CODE ;********************************** 工作状态控制字设置 START: MOV DX,0EC0BH ;写控制端口,地址0EC0BH MOV AL,10010000B ;C口方式0输出 OUT DX,AL

(完整版)微机原理及接口技术(习题答案)

范文范例学习指导 第1章微机运算基础 习题和思考题 1.请完成以下计算: 174.66D=(10101110.10101)B=(AE. A8)H 10101110101.01011B=(1397.344)D=(575.58)H 4BCH=(010*********)B=()BCD 2.设字长为8位,X=(2A)16,当X分别为原码、补码、反码和无符号数的时候,其真值 是多少? 答:当X表示原码时,其真值为:+101010 当X表示补码时,其真值为:+101010 当X表示反码时,其真值为:+101010 当X表示无符号数数时,其真值为:00101010 3.设字长为8位,用补码形式完成下列计算,要求有运算结果并讨论是否发生溢出? 120+18 -33-37 -90-70 50+84 答:120+18 其补码形式分别为:(120)补=01111000 (18)补=00010010 01111000 + 00010010 10001010 由于C s=0 ,C p=1,因此有溢出,结果错误 -33-37 其补码形式为:(-33)补=11011111 (-37)补=11011011 11011111 +11011011 10111010 由于C s=1, C p=1,所以没有溢出,结果正确 -90-70 其补码形式为:(-90)补=10011100 (-70)补=10111010 10011100 +10111010 01010110 由于C s=1, C p=0,所以有溢出,结果错误 50+84

其补码形式为:(50)补=00110010 (84)补=01010100 00110010 +01010100 10000110 由于C s=0, C p=1,所以有溢出,结果错误 4.请写出下列字符串的ASCII码值。 My name is Zhang san. 4D 79 6E 61 6D 65 69 73 5A 68 61 6E 67 73 61 6E 2E 第2章 80X86微机系统 习题与思考题 1.微型计算机主要由哪些基本部件组成?各部件的主要功能是什么? 答:微型计算机主要由输入设备、运算器、控制器、存储器和输出设备组成。 各部件的功能分别是:1、输入设备通过输入接口电路将程序和数据输入内存;2、运算器是进行算术运算和逻辑运算的部件,它是指令的执行部件;3、控制器是计算机的指挥中心,它负责对指令进行译码,产生出整个指令系统所需要的全部操作的控制信号,控制运算器、存储器、输入/输出接口等部件完成指令规定的操作;4、存储器用来存放程序、原始操作数、运算的中间结果数据和最终结果数据; 5、输出设备是CPU通过相应的输出接口电路将程序运行的结果及程序、数据送到的设备; 2.微处理器的发展过程是什么? 答:微型计算机的发展过程是: 第一代(1946~1957)——采用电子管为逻辑部件,以超声波汞延迟线、阴极射线管、磁芯和磁鼓等为存储手段;软件上采用机器语言,后期采用汇编语言。 第二代(1957~1965)——采用晶体管为逻辑部件,用磁芯、磁盘作内存和外存;软件上广泛采用高级语言,并出现了早期的操作系统。 第三代(1965~1971)——采用中小规模集成电路为主要部件,以磁芯、磁盘作内存和外存;软件上广泛使用操作系统,产生了分时、实时等操作系统和计算机网络。 第四代(1971~至今)——采用大规模集成电路(LSI)、超大规模集成电路(VLSI)为主要部件,以半导体存储器和磁盘为内、外存储器;在软件方法上产生了结构化程序设计和面向对象程序设计的思想。 3.简述80486微处理器的基本结构。 书12页 4.80486微处理器的工作模式有几种?当CS内容为1000H,IP内容为7896H,求在实地址 模式下的物理地址为多少? 答:实模式和保护模式及虚拟8086模式。当CS内容为1000H,IP内容为7896H,在实地

单片机原理及其接口技术实验报告

单片机原理及其接口技术实验指导书 实验1 Keil C51的使用(汇编语言) 一.实验目的: 初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。 二.实验设备: ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。 三.实验原理及环境: 在计算机上已安装Keil C51软件。这个软件既可以与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。 四:实验内容: 1.掌握软件的开发过程: 1)建立一个工程项目选择芯片确定选项。 2)加入C 源文件或汇编源文件。 3)用项目管理器生成各种应用文件。 4)检查并修改源文件中的错误。 5)编译连接通过后进行软件模拟仿真。 6)编译连接通过后进行硬件仿真。 2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。 3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波。 五:程序清单: ORG 0000H AGAIN:CPL P1.0 MOV R0,#10 ;延时0.5秒 LOOP1:MOV R1,#100 LOOP2:MOV R2,#250 DJNZ R2,$ DJNZ R1,LOOP2 DJNZ R0,LOOP1 SJMP AGAIN END 六:实验步骤: 1.建立一个工程项目选择芯片确定选项 如图1-1所示:①Project→②New Project→③输入工程名test→④保存工程文件(鼠标点击保存按钮)

微机原理与接口技术实验报告

新疆农业大学机械交通学院 实习(实验)报告纸 班级:机制072 学号: 073731234 姓名:唐伟 课程名称:微机原理及接口技术实习(实验)名称: DEBUG软件的使用 实验时间: 6.22 指导教师签字:成绩: —、实验目的 1.学习DEBUG软件的基本使用方法。 2.掌握8088/8086的寻址方式。 3.掌握数据传送、算术运算逻辑运算等类指令的基本操作。 二、实验内容与步骤 实验内容: 修改并调试以下程序,使之完成30000H开始的内存单元中存入31个先自然递增然后有自然递减的数据(00H~0F~00H)的功能。程序从CS:0100H开始存放。调试完成后程序命名为PCS.EXE并存盘。 实验步骤: (1)用A命令输入程序; (2)用反汇编U命令显示程序及目标码; 存盘程序命令为PCS1.EXE;

三、思考题 1.EXE文件程序的第一条可执行指令的IP等于多少? 答:EXE文件程序的第一条可执行指令的IP等于0010 。 2.在DEBUG环境下显示的程序和数字是什么形式?标号又是什么形式? 答: DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEB UG可以识别两种数据: 十六进制数据和ASCⅡ码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASCⅡ码字符。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。不支持标号。 3.试述本次实验中你学会的DEBUG命令? 答:本次试验我学会了汇编命令(A命令)、.反汇编命令(U命令)、显示当前环境和寄存器内容(R命令、以十六进制和ASCII码形式显示内存单元内容(D命令)

微机原理与接口技术(第二版) 清华大学出版社

习题1 1.什么是汇编语言,汇编程序,和机器语言? 答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。 汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。 2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么? 答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。 这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。 3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。 答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。 “存储程序控制”的概念可简要地概括为以下几点: ①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。 ②在计算机内部采用二进制来表示程序和数据。 ③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 ④五大部件以运算器为中心进行组织。 4.请说明微型计算机系统的工作过程。 答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存

放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。 5.试说明微处理器字长的意义。 答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快。 6.微机系统中采用的总线结构有几种类型?各有什么特点? 答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型。 7.将下列十进制数转换成二进制数、八进制数、十六进制数。 ①(4.75)10=(0100.11)2=(4.6)8=(4.C)16 ②(2.25)10=(10.01)2=(2.2)8=(2.8)16 ③(1.875)10=(1.111)2=(1.7)8=(1.E)16 8.将下列二进制数转换成十进制数。 ①(1011.011)2=(11.375)10 ②(1101.01011)2=(13.58)10 ③(111.001)2=(7.2)10 9.将下列十进制数转换成8421BCD码。 ① 2006=(0010 0000 0000 0110)BCD ② 123.456=(0001 0010 0011.0100 0101 0110)BCD 10.求下列带符号十进制数的8位基2码补码。 ① [+127]补= 01111111

微机原理及接口技术实验报告

实验一 DEBUG命令及其基本操作 一.实验目的: 1.熟练掌握DEBUG的常用命令,学会用DEBUG来调试程序。 2.深入了解数据在存储器中的存取方法,了解堆栈中数据的压入与弹出方法。 3.掌握各种寻址方法,了解简单指令的执行过程。 二、实验容: 1.打开计算机,在WINXP操作系统下,点击“开始”,选择“运行”,在“打开”一栏中输入“debug”,运行DEBUG应用程序,将出现DEBUG的提示符“-”。 2.在DEBUG提示符后键入字母“-a100”,回车后,屏幕上就会出现下面类似的容: (具体到每个计算机所产生的段地址和偏移地址可能有所不同) 这表示在地址1383:0100处,DEBUG等待用户键入程序助记符,下面键入程序: 3.在DEBUG的提示符后键入G,这是执行程序的命令,然后回车,就可以看到结果了。 4.现在让我们用“d”命令来看一下存储器 在100H~107H这8个单元,程序覆盖了原来的容,右边的字符是组成程序的ASCII码等价字符,圆点表示不可显示字符。 5.下面我们用反汇编命令来查看一下所键入的程序。“U”命令的格式是“U起始地址,终止地址”,即把起始地址到终止地址之间的十六进制码反汇编成汇编语言助记符语句。键入: 大家在屏幕上不仅可以看到地址和助记符,而且还可以看到与汇编语言等价的机器语言。6.现在我们修改存储单元的容,看看显示情况和变化。 我们看到显示的结果发生了变化,这是因为DOS的2号功能调用是显示输入数据的ASCII 码字符。 7.下面我们给程序命名并存盘。在键入“n”后紧跟程序名及扩展名

因为文件的字节数必须事先放在BX和CX中,其中BX保存高16位,CX保存低16位,整个32位的数保存文件的字节数,一般来说,BX设置为0,因为CX可存放的字节数为64K,对于一般的程序已足够了。 8.结束后可用Q命令退出DEBUG程序。 三、实验习题 1.写出完成下列功能的指令序列 (1)传送20H到AL寄存器 (2)将(AL)*2 (3)传送25H到BL寄存器 (4)(AL)*(BL) 问最后的结果(AX)=? 单步执行结果: 2.分别写出完成下列指令要求的指令: (1)将BX的低4位清零; (2)将AX的高4位置1; (3)将DX的低4位取反; (4)将CX的中间八位清零; (5)将AX中与BX中的对应位不相同的位均置1.

微机原理与接口技术学习心得

本学期微机原理课程已经结束,关于微机课程的心得体会甚多。微机原理与接口技术作为一门专业课,虽然要求没有专业课那么高,但是却对自己今后的工作总会有一定的帮助。记得老师第一节课说学微机原理是为以后的单片机打基础,这就让我下定决心学好微机原理这门课程。 初学《微机原理与接口技术》时,感觉摸不着头绪。面对着众多的术语、概念及原理性的问题不知道该如何下手。在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。 《微机原理与接口技术》课程有许多新名词、新专业术语。透彻理解这些名词、术语的意思,为今后深入学习打下基础。一个新的名词从首次接触到理解和应用,需要一个反复的过程。而在众多概念中,真正关键的并不是很多。比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。 学习过程中,我发现许多概念很相近,为了更好地掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。比如:微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。微处理器是微型计算机的重要组成部分,它与微型计算机、微型计算机系统是完全不同的概念在微机中,最基础的语言是汇编语言。汇编语言是一个最基础最古老的计算机语言。语言总是越基础越重要,在重大的编程项目中应用最广泛。就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。而在某些时候,这种方法是最有效,最可靠的。 然而,事物总有两面性。其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较烦琐的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。在一些讲求效率的场合,并不可取。 汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。学习事物总是从最简单基础的开始。那么学习高级语言也当然应当从汇编开始。学习汇

计算机组成原理与接口技术实验报告

计算机组成原理与接口技术 课程设计实验报告 学院:计算机科学与工程 专业:计算机科学与技术 班级:计科二班 学号: 姓名: 指导老师: 评分: 2016年12月28日

实验一验证74LS181运算和逻辑功能 1、实验目的 (1)掌握算术逻辑单元(ALU)的工作原理; (2)熟悉简单运算器的数据传送通路; (3)画出逻辑电路图及布出美观整齐的接线图; (4)验证4位运算功能发生器(74LS181)组合功能。 2、实验原理 ALU能进行多种算术运算和逻辑运算。4位ALU-74LS181能进行16种算术运算和逻辑运算。 74ls181芯片介绍: 该芯片总共由22个引脚,其中包括8个数据 输入端(~A0、~A1、~A2、~A3,~B0、~B1、~B2、 ~B3,其中八个输入端中A3和B3是高位),这八 个都是低电平有效。还包括S0、S1、S2、S3这四 个控制端,这四个控制端主要控制两个四位输入 数据的运算,例如加、减、与、或。CN端处理进 入芯片前进位值,M控制芯片的运算方式,包括 算术运算和逻辑运算。F0、F1、F2、F3是四个二 进制输出端,以一个四位二进制形式输出运算的 结果。CN4记录运算后的进位。

3、实验内容 实验电路图:

4、总结及心得体会 本实验通过一个设计一个简单的运算器,使我熟悉了Multisim软件的一些基本操作方法,并掌握了一些简单的电路设计与分析的能力,并对我做下一个运算器的实验有一定的帮助。因为是之前实验课做过的实验,再次做起来过程比较流畅,没有遇到什么大的问题,实验的测试结果与预期的一致。 该芯片总共由22个引脚,其中包括8个数据输入端(~A0、~A1、~A2、~A3,~B0、~B1、~B2、~B3,其中八个输入端中A3和B3是高位),这八个都是低电平有效。还包括S0、S1、S2、S3这四个控制端,这四个控制端主要控制两个四位输入数据的运算,例如加、减、与、或。CN端处理进入芯片前进位值,M控制芯片的运算方式,包括算术运算和逻辑运算。F0、F1、F2、F3是四个二进制输出端,以一个四位二进制形式输出运算的结果。CN4记录运算后的进位。其中AEQB、~P和~G这三个端口与本实验无关,所以这里不做额外介绍。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

2

3

实验一:数据传送 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 1.学习程序设计的基本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法; 学习用全屏幕编辑软件QEDIT.EXE建立源程序(.ASM文件); 学习用汇编软件MASM.EXE对源文件汇编产生目标文件(.OBJ文件); 学习用连接程序LINK.EXE对目标文件产生可执行文件(.EXE文件); 学习用调试软件TD.EXE调试可执行文件; 2.掌握各种寻址方法以及简单指令的执行过程。 二.实验器材 PC机 三.实验组织运行要求 1.利用堆栈实现AX的内容与BX的内容进行交换。堆栈指针SP=2000H,AX=3000H,BX=5000H; 2.汇编、调试、观察、记录结果; ⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘; ⑵用MASM对源程序进行汇编产生二进制目标文件(.OBJ文件),再用连接程序LINK产生可执行文件(.EXE文件); ⑶用调试软件TD调试、运行程序,观察、记录结果。 四.实验步骤 1.进入子目录E:>\SY86后,利用QEDIT.EXE(简称Q)送入以下汇编语言源程序,并以M1.ASM文件存盘 ⑴汇编语言程序的上机过程 ①进入\SY86子目录 E:>CD\SY86 E:\SY86> ②进入QEDIT.EXE 编辑界面 E:\SY86> Q ③输入文件名*.ASM(如M1.ASM)后,输入源程序 源程序 DATA SEGMENT PARA PUBLIC’DATA’ ;数据段定义 DB 512 DUP(0) DATA ENDS STACK SEGMENT PARA STACK’STACK’ ;堆栈段定义 DB 512 DUP( ?) 4

微机原理与接口技术习题答案

《微机原理与接口技术》习题答案 一、单项选择题 1、80486CPU进行算术和逻辑运算时,可处理的信息的长度为( D )。 A、32位 B、16位 C、8位 D、都可以 2、在下面关于微处理器的叙述中,错误的是( C ) 。 A、微处理器是用超大规模集成电路制成的具有运算和控制功能的芯片 B、一台计算机的CPU含有1个或多个微处理器 C、寄存器由具有特殊用途的部分内存单元组成,是内存的一部分 D、不同型号的CPU可能具有不同的机器指令 3、若用MB作为PC机主存容量的计量单位,1MB等于( B )字节。 A、210个字节 B、220个字节 C、230个字节 D、240个字节 4、运算器在执行两个用补码表示的整数加法时,判断其是否溢出的规则为( D )。 A、两个整数相加,若最高位(符号位)有进位,则一定发生溢出 B、两个整数相加,若结果的符号位为0,则一定发生溢出 C、两个整数相加,若结果的符号位为1,则一定发生溢出 D、两个同号的整数相加,若结果的符号位与加数的符号位相反,则一定发生溢出 5、运算器的主要功能是( C )。 A、算术运算 B、逻辑运算 C、算术运算与逻辑运算 D、函数运算 6、指令ADD CX,55H[BP]的源操作数的寻址方式是(D )。 A、寄存器寻址 B、直接寻址 C、寄存器间接寻址 D、寄存器相对寻址 7、设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=(A ) A、113AH B、114AH C、1144H D、1140H 8、若SI=0053H,BP=0054H,执行SUB SI,BP后,则( C)。 A、CF=0,OF=0 B、CF=0,OF=1 C、CF=1,OF=0 D、CF=1,OF=1 9、已知(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOV BX,[BP]执行后,(BX)=(D ) 。 A、0102H B、0201H C、245AH D、5A24H 10、实模式下80486CPU对指令的寻址由(A )决定。 A、CS,IP B、DS,IP C、SS,IP D、ES,IP 11、使用80486汇编语言的伪操作指令定义: VAL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0)) 则

8086软硬件实验报告(微机原理与接口技术上机实验)

实验一实验环境熟悉与简单程序设计 实验目的 (1)掌握DEBUG调试程序的使用方法。 (2)掌握简单程序的设计方法。 实验内容 编程将BH中的数分成高半字节和低半字节两部分,把其中的高半字节放到DH中的低4位(高4位补零),把其中的低半字节放到DL中的低4位(高4位补零)。如: BH=10110010B 则运行程序后 DH=00001011B DL=00000010B 实验准备 (1)熟练掌握所学过的指令。 (2)根据实验内容,要求预先编好程序。 实验步骤 (1)利用DEBUG程序输入、调试程序。 (2)按下表要求不断地修改BH的内容,然后记录下DX的内容。 实验报告 (1)给出程序清单。 (2)详细说明程序调试过程。

程序: CODE SEGMENT START : MOV BH,00111111B MOV AL,BH MOV CL,4 SHR AL,CL MOV DH,AL MOV AL,BH AND AL,00001111B MOV DL,AL MOV CL,0 CODE ENDS END START

实验二简单程序设计 实验目的 (3)掌握DEBUG调试程序的使用方法。 (4)掌握简单程序的设计方法。 实验内容 试编写一个汇编语言程序,要求实现功能:在屏幕上显示:Hello world My name is Li Jianguo 参考程序如下:(有错) data segment out1 db 'Hello world' ax db 'My name is Li Jianguo' data ens code segment assume cs:code;ds:data lea dx,out1 mov ah,2 int 21h mov dl,0ah mov ah,2

汇编程序及接口技术实验报告

微机汇编程序及接口技术实验报告 汇编程序实验: 一、实验目的 1、熟悉汇编程序调试过程 2、掌握算术运算指令运用 3、掌握分支程序的编程和调试方法 二、实验设备 80X86微型计算机 三、实验内容 1、编程并调试显示“Hello Word!”字符串的汇编程序 TITLE HELLO DA TA SEGMENT STR DB'Hello World!$' DA TA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DX,OFFSET STR MOV AH,9H INT 21H MOV AH,4CH INT 21H CODE ENDS END START

2、A、B、C、D、W是互不相等的在数据段中定义的16位有符号数,并假设加减运算不产生溢出。编写一个完整段定义的汇编语言程序,计算W=(A+B)×(C—D)。 title asmprogram1_1 DA TA SEGMENT A DW 1H B DW 3H C DW 4H D DW 2H W DW 2 DUP(?) DA TA ENDS ; CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV AX,A ADD AX,B MOV BX,C SUB BX,D IMUL BX MOV W,AX MOV W+2,DX MOV AH,4CH INT 21H CODE ENDS END START

3、设X、Y为在数据段中定义的有符号字变量。编写一个完整段定义的汇编语言程序(包含必要的伪指令,给出必要的注释)完成以下操作:若0

微机原理与接口技术_课程设计实验报告

课程设计实验报告 课程:现代微机原理与接口技术题目:键盘扫描实验

班级:数字媒体 1004 学号: 0305100417 学生:海洋 指导老师:天天 日期: 2012.6.18 一、实验目的 (1)掌握键盘扫描的应用及编程 (2)掌握LED的应用 二、实验设备 PC计算机一台,TD-PIT + 实验系统一套。 三、实验原理 (1)8255芯片:8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。可与外设并行进行数据交换。A口和B口具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换。把8255并口和键盘,组成一个键盘装置。通过cpu对8255的控制最总达到键扫的目的。每一个键对应一个ASCII 码字符,通过8255的输入和输出,最终显示在屏幕上。 (2)LED数码显示原理:数码管的 7 个段及小数点都是由 LED 块组成的,显示方式分为静态显示和动态显示两种。数码管在静态显示方式时,其共阳管的位选信号均为低电平,四个数码管的共用段选线 a、b、c、d、e、f、g、dp 分别与单片机的 8 根 I/O 口线相连,显示数字时只要给相应的段选线送低电平。数码管在动态显示方式时,在某一时刻只能有一个数码管被点亮显示数字,其余的处于非选通状态,位选码端口的信号改变时,段选码端口的信号也要做相应的改变,每位显示字符停留显示的时间一般为1-5ms,利用人眼睛的视觉惯性,在数码管上就能看到相当稳定的数字显示。 (3)键盘扫描原理:第一步,使行线为编程的输入线,列线是输出线,拉低所有的列线,判断行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则所有的行

微机原理与接口技术

第二章 8086系统结构 一、 8086CPU 的内部结构 1.总线接口部件BIU (Bus Interface Unit ) 组成:20位地址加法器,专用寄存器组,6字节指令队列,总线控制电路。 作用:负责从内存指定单元中取出指令,送入指令流队列中排队;取出指令所需的操作 数送EU 单元去执行。 工作过程:由段寄存器与IP 形成20位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给定的地址从存储器中取出指令,送到指令队列中等待执行。 *当指令队列有2个或2个以上的字节空余时,BIU 自动将指令取到指令队列中。若遇到转移指令等,则将指令队列清空,BIU 重新取新地址中的指令代码,送入指令队列。 *指令指针IP 由BIU 自动修改,IP 总是指向下一条将要执行指令的地址。 2.指令执行部件EU (Exection Unit) 组成:算术逻辑单元(ALU ),标志寄存器(FR ),通用寄存器,EU 控制系统等。 作用:负责指令的执行,完成指令的操作。 工作过程:从队列中取得指令,进行译码,根据指令要求向EU 内部各部件发出控制命令,完成执行指令的功能。若执行指令需要访问存储器或I/O 端口,则EU 将操作数的偏移地址送给BIU ,由BIU 取得操作数送给EU 。 二、 8088/8086的寄存器结构 标志寄存器 ALU DI DH SP SI BP DL AL AH BL BH CL CH ES SS DS CS 内部暂存器输入 / 输出控制 电路1432EU 控制系 统20位16位8086总线指令 队列总线 接口单元执行 单元 6 516位 属第三代微处理器 运算能力: 数据总线:DB

微机原理与接口技术 实验报告

微机原理与接口技术 实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名:

实验一8259中断控制器应用实验 一、实验目的 1.掌握PC机中断处理系统的基本原理。 2. 掌握可编程中断控制器8259的应用编程方法。 二、实验内容 1.PC机内中断实验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。 2.PC机内中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。 3.扩展多中断源查询方式应用实验。利用实验平台上8259控制器作为中断扩展源,编写程序对8259控制器的中断请求进行处理。 三、实验步骤 1.实验1-1:PC机内中断应用实验 (1)按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,屏幕显示结果截图如下: (2)自设计实验。改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考本实验代码,编程实现IRQ10中断。(注意:考虑PC机内中断级联的方式,参看前面的原理说明),代码如下: DA TA SEGMENT MESS DB 'IRQ10 ',0DH,0AH, '$' DA TA ENDS

CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, CS MOV DS, AX MOV DX,OFFSET INT10 MOV AX,2572H ;设置IRQ10对应的中断向量 INT 21H IN AL,21H ;读取中断屏蔽寄存器 AND AL,0F3H ;开放IRQ3中断和从片 OUT 21H,AL IN AL,0A1H ;从片的中断屏蔽寄存器 AND AL,0FBH ;开放IRQ10中断 OUT 0A1H,AL MOV CX,10 STI WAIT: JMP W AIT INT10: MOV AX, DATA ;中断服务程序 MOV DS, AX MOV DX, OFFSET MESS MOV AH, 09 ;在屏幕上显示每次中断的提示信息 INT 21H MOV AL, 20H ; 发出EOI结束中断到PC内主片的地址20H OUT 20H, AL LOOP NEXT IN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字 OR AL, 08H ;关闭IRQ3中断 OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器 STI ;置中断标志位 MOV AH, 4CH ;返回DOS INT 21H NEXT: IRET ;中断返回 CODE ENDS END START 调用程序代码,观察实验现象,屏幕显示截图如下:

北邮微机原理与接口技术硬件实验报告

微原硬件实验报告 班级:07118 班 学号:070547 班内序号:26 姓名:杨帆

实验一熟悉实验环境及IO的使用 一,实验目的 1. 通过实验了解和熟悉实验台的结构,功能及使用方法。 2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。 3. 学会Debug 的使用及编写汇编程序 二,实验内容 1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作, 2.用汇编语言编写跑马灯程序。(使用EDIT 编辑工具)实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度 等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) 三,实验步骤 1.实验板的IO 端口地址为EEE0H 在Debug 下, I 是读命令。(即读输入端口的状态---拨码开关的状态) O 是写命令。(即向端口输出数据---通过发光管来查看) 进入Debug 后, 读端口拨动实验台上八位拨码开关 输入I 端口地址回车 屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口 输入O 端口地址xx (xx 表示要向端口输出的内容)回车 查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。 2. 在Debug 环境下,用a 命令录入程序,用g 命令运行 C>Debug -a mov dx, 端口地址 mov al,输出内容 out dx, al

mov ah, 0bh int 21h or al, al jz 0100 int 20h -g 运行查看结果,修改输出内容 再运行查看结果 分析 mov ah, 0bh int 21h or al, al jz 0100 int 20h 该段程序的作用 3.利用EDIT 工具编写汇编写跑马灯程序程序 实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm 录入程序 按Alt 键打开菜单进行存盘或退出 编译文件 C>MASM 文件名.asm 连接文件 C>LINK 文件名.obj 运行文件或用Debug 进行调试。 四,程序流程图

微机原理与接口技术试题库(含答案)汇总

一、问答题 1、下列字符表示成相应的ASCII码是多少? (1)换行0AH (2)字母“Q”51H (3)空格20H 2、下列各机器数所表示数的范围是多少? (1)8位二进制无符号定点整数; 0~255 (2)8位二进制无符号定点小数;0.996094 (3)16位二进制无符号定点整数;0~65535 (4)用补码表示的16位二进制有符号整数;-32768~32767 3、(111)X=273,基数X=?16 4、有一个二进制小数X=0.X1X2X3X4X5X6 (1)若使X≥1/2,则X1……X6应满足什么条件? X1=1 若使X>1/8,则X1……X6应满足什么条件?X1∨X2 ∨X3=1 (2) 5、有两个二进制数X=01101010,Y=10001100,试比较它们的大小。 (1)X和Y两个数均为无符号数;X>Y (2)X和Y两个数均为有符号的补码数。X

计算机接口技术实验报告

实验一无条件输出端口的构成与地址译码 【地址译码电路】 【实验板的线路接法】 将电路图上的A1-A7端口依次PIN到PIN_3、PIN_4、PIN_7、PIN_8 、PIN_9、PIN_24、PIN_25,再用八股导线连接到实验箱中的XA1-XA7上; 将电路图上的IOW端口PIN到PIN_17,通过转换单元连接到实验箱上的IOW端口; 将电路图上的D1-D8端口依次PIN到PIN_27、PIN_28、PIN_30、PIN_31 、PIN_32、PIN_40、PIN_41、PIN_42,再用八股导线连接到实验箱中的XD1-XD7上; 将电路图上的OUT1-OUT8端口依次PIN到PIN_43、PIN_44、PIN_45、PIN_47 、PIN_48、PIN_51、PIN_52、PIN_53,再用八股导线连接到实验板上二极管对应的的D0-D7上。 最后,给实验板接上电源线和地线。 【输出数据至端口的程序段】 #include #include #include #include #include #include void main() { outp( 0x3000, 0x00 ); } 【Led规律性变化的程序段】 #include #include #include #include #include #include void main()

相关文档
相关文档 最新文档