微机原理作业习题

发布 2022-09-04 21:13:28 阅读 8357

仅供有热情人士参考,因为与考试不怎么有关。

3.8086微处理器(16位的微处理器)在内部功能逻辑上分为两个处理单元:总线接口单元和执行单元。

4.指令流字节队列为6字节(8086)(p29页)

5.8086在内部结构上有哪几部分组成?有什么功能?

答:两部分:总线接口和执行单元。

功能:总线接口提供基本总线控制功能,完成有关指令获取和排队、操作数存取及操作数地址重定位;执行单元提供指令执行功能,从总线接口单元的指令队列接收指令和操作数,向总线接口单元提供非重定位的操作数地址和要存储到内存的操作数。

6.8086工作在最小模式和最大模式的主要特点是什么?有何区别?

答:最小模式设计为构成一个最简微机系统,而不需要任何总线控制逻辑电路和总线驱动电路;最大模式设计为支持多总线和协处理器的微机系统,需要有总线控制器8288或类似的芯片代为产生兼容多总线的总线控制信号。

7.8086cpu的寻址方式?

答:四大类一是立即数寻址,二是寄存器寻址,三是内存寻址(直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址),四是i/o端口寻址包含直接端口寻址,直接端口寻址个数为0—255个,8位;寄存器的间接端口寻址,当端口地址大于255时,必须先把端口地址送到dx寄存器中,16位(p52页)

8.8086/8088的指令按功能分为几类?各完成什么功能?

答:六类:数据传送,算数运算,逻辑运算和移位元,串操作,控制转移和处理器控制指令。

数据传送用于将原始数据,中间运算结果,最终结果,及其它信息在cpu的寄存器和内存之间传送;算术运算具有加、减、乘、除等算术运算,具有运算能力;逻辑运算和移位元对字节或字数据中得各个二进制位进行操作,对8位或16位操作数进行逻辑运算和移位操作;串操作用一条指令实现对一串字符或数据的操作,针对这些字或字节进行的某种相同的操作;控制转移类指令用于改变程序的执行顺序,转移到指定程序段的入口地址;处理器控制指令只是完成简单的控制功能,用来对cpu进行控制。

9.什么叫端口,通常有哪几类端口?计算机对i/o端口编址时通常采用哪两种方法?在8086/8088系统中,用哪种方法对i/o端口进行编址?

答:端口是指接口电路中能被cpu直接访问的寄存器,通常分为数据端口、状态端口、控制端口三类;计算机中通常用两种i/o端口编址方式:存储器映象编址方式(统一编址方式)和端口独立编址方式;在8086/8088系统中,用端口独立编址方式。

和输入/输出设备之间传送的信息有哪几类?

答:有数据信息、控制信息、状态信息三类。

和外设之间的数据传送方式有哪几种?实际选择某种传输方式时主要依据是什么?

答:cpu和外设之间的数据传送方式有三种:程序控制传送方式(无条件传送方式、查询传送方式)、中断传送方式、dma传送方式;主要依据是外设的情况(外设的速度和外设提供信息的方式)。

12.8086中断方式有哪几类?

答:两种中断方式;内部中断(软件中断)和外部中断(硬件中断)

硬件中断:由外部硬件引发,它又分两类:非屏蔽中断nmi和可屏蔽中断intr; 软件中断:由cpu内部事件引起的中断,包括溢出中断、除法出错中断、单步中断、断点中断、指令中断。

13.各种中断源的优先权:软件中断优先权最高依此是除法出错,指令中断,溢出中断,非屏蔽中断,可屏蔽中断,单步中断优先权最低。

14.8086响应中断可分为4个阶段:中断请求,中断响应,中断服务及中断返回。

15.中断类型码:8086系统采用的是向量型中断方式,8086中断源共分为256级中断,每个中断源对应一个0—255编号,称为中断类型码或中断向量号。

16.什么叫中断向量?它放在**?

答:中断服务程序入口地址称为中断向量,中断向量由段地址cs和偏移地址ip组成,占用4个字节,它放在中断向量表中。

17.两片8259级联(p186页)

18.8253的基本功能:具有3个独立的16位定时/计数器,采用二进制计数时最大技术范围为0-65535;采用bcd码计数时,最大计数值为0-9999.

19.定时的方法有两种:软件定时(延迟子程序)与硬件定时(用计数器/定时器8253)。

20.8253的工作方式:1.

方式0---计数结束时中断方式;2.方式1---可编程单脉冲发生器;3.方式2---速率发生器、分频器;4.

方式3---方波发生器;5.方式4---软件触发选通信号发生器;6.方式5---硬件触发选通方式。

21.8255的工作方式:1.方式0是基本输入/输出方式;2.方式1是选通输入/输出方式;3.方式2是选通双向总线输入/输出方式。

22.8255提供两个独立的并行通信线路a组和b组,a组包括一个8位并口pa口和一个4位并口pc口高半部分,有3种工作方式,b组包括一个8位并口pb口和一个4位并口pc口低半部分,有两种工作方式。

23.8255是一种通用可编程并行接口芯片,8255拥有24个输入/输出引脚,其中一组有3种工作方式,一组有2种工作方式。

24.用查表的方法将一位十六进制数转换成与它相应的ascⅱ码。

data segment

table db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h db 41h,42h,43h,44h,45h,46h

number db 8

ascii db ?

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax ;数据段加载。

mov bx,offset table

mov al,number ;换码指令的入口参数设置。

xlat ;换码指令。

mov ascii,al

mov ah,4ch

int 21h ;系统功能调用,返回。

code ends

end start

25.编程完成两个32位数的加法。

本程序是双精度(4字节,即32位数)运算求和。计算x+y=z,将结果z存入某存储单元。22221111h + 44443333h = 66664444h

data segment

xl dw 1111h ;请在此处给x低位赋值。

xh dw 2222h ;请在此处给x高位赋值。

yl dw 3333h ;请在此处给y低位赋值。

yh dw 4444h ;请在此处给y高位赋值。

zl dw ?

zh dw ?

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov ax,xl ;x低位送ax

add ax,yl ;x低位加y低位。

mov zl,ax ;存低位和。

mov ax,xh ;x高位送ax

adc ax,yh ;x高位加y高位。

mov zh,ax

mov ah,4ch

int 21h

code ends

end start

26.编程实现开关函数的功能,其中x,y为无符号数: 1,当x 0

data segment y 0,当x 0 x db 57;给x赋值 1,当x 0 y db ?

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov al, x

cmp al, 0

je zero ;x=0,转。

jns plus ;x>0,转。

mov bl, -1

jmp stop

zero: mov bl, 0

jmp stop

plus : mov bl, 1

stop: mov y,bl

mov ah,4ch

int 21h

code ends

end start

27.求补码数z的绝对值,并送回原处。

data segment

z dw 0ff9ch

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov ax,z

and ax,ax ;目的是设置sf位。

jns exit

neg ax ;求补码,64h

mov z,ax

exit: mov ah,4ch

int 21h 系统功能调用,返回。

code ends

end start

28.编程实现下列功能:统计一个字符串对应的ascii码串中二进制1的个数。

data segment

str db ‘asdfjkl’

count equ $-str

num db ?

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov num,0

mov si,offset str

mov cx,count

lop1: mov al,[si]

lpo2: cmp al,0

je lop3

shl al,1

jnc lop2

inc num

jmp lop2

lop3: inc si

loop lop1

mov ah,4ch

int 21h

code ends

end start

29.从60h(10个)个元素中寻找一个最大的值,并放到al中,假设这60(10)个元素放在data1开始的单元中。

data segment

data1 db 0,1,2,3,4,5,6,7,8,9 ;

data ends

stack segment

sta db 20 dup (?

top equ length sta

stack ends

code segment

assume cs:code,ds:data,ss:stack

start: mov ax,data

mov ds,ax

mov ax,stack

mov ss,ax

mov ax,top

mov sp,ax

mov cx,10

mov al,0

lea bx,data1

again: cmp al,[bx]

jge next ;大于等于转移。

mov al,[bx]

next : inc bx

loop again

mov ah,4ch

int 21h

code ends

end start

30.设某应用系统中,系统提供一个频率为10khz的时钟信号,要求每隔100ms采集一次数据。在系统中,采用8253定时器0来实现这一要求。

将8253芯片的clk0接到系统的10khz时钟上,out0输出接到cpu的中断请求线上,8253的端口地址为210h—216h.

微机原理作业

微型计算机原理及应用 作业。作业组别 十八。班级 机电一班姓名 学号 作业指导教师 任课教师 实验室教师 作业完成时间 2013年4月17日。目录。1题目一31 1题目分析31.2寄存器的应用说明31.3程序框图31.4详细程序41.5程序调试的情况42题目二42.1题目分析52.2寄存器及主存等的...

微机原理作业

微型计算机原理及应用 作业。作业组别 第30组。班级 12级轧钢二班。姓名 贾闯 学号 120101020023 指导教师 李艳文 完成时间 2015年 05 月。一 题目及题目分析描述及要求。题目 内存中source处存放着10个字节型数据,请记录每个字节数据中二进制位1的个数,并按照数据字节在前...

微机原理作业

微型计算机原理及应用 作业。作业组别 第十一组。班级 10级机控一班。姓名 孙策。学号 100107010140 作业指导教师 李艳文 作业完成时间 2013年4月9日。目录。第一题 1 一 题目分析 1 二 寄存器及主存应用说明 1 三 程序框图 1 四 详细程序 1 五 程序调试情况 2 第二题...