微机原理期中考试

微机原理期中考试卷子

1.微机系统所具有的物理地址空间是由地址总线数决定的,8086系统的物理地址空间为1M字节。

2.微机系统中采用的是三总线结构分别是地址总线、数据总线和控制总线三种总线。

3.在信息编码中,十进制数适用BCD编码,英文字符采用ASCll编码。

4.系统掉电后,存储器中的内容会丢失是随机读写存储器,存储器中的内容保持不变的是只读存储器。

5.8086系统中,标号是逻辑地址名,变量是物理 地址名。

6.伪指令是在汇编过程期间由汇编程序处理的操作。

7.逻辑地址是由段地址偏移地址两部分构成。

8.接口数据传送控制方式分为三种方式:程序传送方式、中断传送方式、直接存储器(DMA)传送方式。

9.在8086中,保存下一条指令在现行代码段中偏移量的寄存器是IP寄存器,它是一个16位的寄存器。

 

二、简答题。

1.简述冯诺依曼的思想。

1)计算机应包括运算器,存储器,控制器、输入、输出设备五大基本部分。

2)计算机内部应采用二进制来表示指令和数据,每条指令一般具有一个操作码和一个地址码,其中操作码表示运算性质,地址码指出操作数在存储器中的地址。

3)将编好的程序送入内存储器中,然后启动计算机工作,计算机无需操作人员干预,能自动逐条取出指令和执行指令。。

2.8086分段访问内存的思想。

所谓分段,就是可以根据需要把1M字节地址空间划分成若干逻辑段,每个逻辑端满足两个条件:(1)逻辑端开始地址必须是16位数,因为段寄存器长为16位。(2)逻辑段的最大长度巍峨64K,因为指针寄存器长为16位,那么1M字节空间最多划分成64K个逻辑段,最少也要划分16个逻辑段,逻辑段与逻辑段可以项链。分段方法不仅有利于实现寻址1M字节空间,也十分有利于对1M存储空间的管理。

3.简述指令队列的作用?

暂存预取指令

4.8086有几种寻址方式?并举例说明。

//(1)立即数寻址。例:mov AL,80H

//(2)寄存器寻址方式。例:INC CX   MOV AX,CX

//(3)存储器寻址:

a、直接寻址:MOV AL,[1064H]

b、寄存器间接寻址:MOV AX,[SI]

c、寄存器相对寻址:MOV AX,[BX+1064H]

d、基址变址寻址:MOV AX,[BX+SI]

e、基址变址相对寻址:MOV AH,BX][SI]

f、基址变址相对寻址:MOV AX,[BX+SI+1234H]

5.简述直接寻址、相对寻址以及间接寻址的作用。

1)直接寻址:操作数一般在存储器数据段中,隐含段寄存器DS,直接给出数据存放的地址,存取速度快。

2)相对寻址:操作数有效地址EA是一个基址寄存器或变址寄存器的内容和志龙中的8位或16位偏移量相加之和。有效地址的两种分别组成。

3)间接寻址:操作数有效地址。包含基址寄存器的内容或变址寄存器的内容。一中分量,可读性高。

三、计算题。

指出下列指令中存储器作数的寻址方式并写出物理地址的表达式。

1)MOV CX,[BL]+10    寄存器间接寻址    CX=DS*10H+BL+10

2)MOV CL,[SI]      寄存器间接寻址    CL=DS*10H+SI

3)MOV DL,[2400]            直接寻址  DS*10H+2400

4)MOV AL,[BP]+5   寄存器相对寻址    AL=SS*10H+BP+5

5)MOV AH,[BX][DI]+12基址变址相对寻址 DS*10H+BI+DI+12

 

四、阅读程序。

阅读下列程序,说明本程序完成的功能,注意斜体字指令的作用,并将最终结果填入HIGHEST。

1. 功能:找到GRADES中的最大值给HIGHEST

2. HIGHEST中的值是:96

DATA

GRADES  DB  69,87,96,45,75

HIGHEST DB  ?

CODE

MAIN     PROC  FAR

   MOV  AX,DATA

   MOV  DS,AX

   MOV  CX,5              :给CX计数器中赋值5

   MOV  BX,OFFSET GRADES  :将GRADES的段内偏移地址给BX

   SUB  AL,AL             :将AL中清零

AGAIN:    CMP  AL,[BX]          :比较AL和BX中的数

   JA   NEXT              :AL中的值大于BX中的数,则直接到NEXT

   MOV  AL,[BX]           :不大于,则将BX中第一个数赋给AL

NEXT:     INC  BX               :BX指向第二个数

   LOOP AGAIN             :CX位0时跳出循环

   MOV  HIGHSET,AL        :将AL中的值赋给HIGHSET

   MOV  AH,4CH

   INT  21H

MAIN      ENDP

   END  MAIN   

 

五、程序设计。

将十进制数组cost每个元素加上15后,存入prices数组。

DATA    SEGMENT

     cost    DB  20H,28H,15H,26H,19H

 prices    DB   5 DUP(?)

temp    DB   15

DATA    ENDS

CODE    SEGMENT

MAIN    PROC  FAR

  ASSUME  CS:CODE,DS:DATA,SS:SATCK

MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET cost

MOV SI,OFFSET prices

MOV CI,5

NEXT:

MOV AL,[BX]

ADD AL,temp

MOV [SI],AL

INC SI

INC BI

LOOP NEXT

MOV AH,4C

INC 21H

MAIN ENDP

CODE ENDS

   END MAIN

 

 

六、更改程序。

将下列数组GRADES的寻址方式改为基址相对寻址

MODE SAMLL

.STACK 64

.DATA

CRADES DB   69,87,96,45,75

ORG  0008

HIGHSET DB  ?

 

MAIN   PROC FAR

MOV  AX,DATA

   MOV  DS,AX

MOV  CX,5               ;set up loop counter

MOV  BX,OFFSET GRADES->MOV DI,0   ;BX points to GRADE data

SUB  AL,AL   ;AL holds highest grades found so far

AGAIN: CMP  AL,[BX]->CMP AL,GRANDES[DI] ;compare next grade to hightest

JA   NEXT      ;jump if AL still highest

MOV AL,[BX]->MOV AL,GRADES[DI]            ;else AL holds new highest

NEXT:  INC  BX                 ;point to next grade

LOOP AGAIN              ;continue search

MOV  HIGHEST,AL         ;store highest grade

MOV  AH,4CH

INT  21H                ;go back to dos

MAIN: ENDP

END  MAIN

 

七、程序设计。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ASCII码47和25相加,将结果转换成ASCII码后保存

解:  

 

DATA SEGMENT

A1  DB 04H,07H,'$'

A2  DB 02H,05H,'$'

SUM DB ' ',' ','$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

LEA SI, A1

LEA BX, A2

LEA DI, SUM

MOV CX,2

CLC

BEGIN:  

INC SI  

INC BX  

INC DI

LOOP BEGIN  

DEC SI  

DEC BX  

DEC DI

MOV CX,2

CLC

NEXT:;把两个数相加存入SUM中

MOV AL,[BX]

ADC AL,[SI]

AAA

MOV [DI],AL

DEC BX

DEC SI

DEC DI

LOOP NEXT

;;;;;;;;;;;;;;;;;;;;以下可注释;;;;;;;;;;;;;;;;;;;;;;;;;;;

;把SUM中的数字转换成ASCLL码

LEA DI,SUM

    MOV CX,2  

DEALRESULT:  

ADD BYTE PTR [DI],30H  

INC DI  

LOOP DEALRESULT  

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

LEA DX,SUM

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值