微机原理及接口技术期末复习试题Word版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.7 试实现下列转换。
(1)[X]原=10111110B,求[X]补 (2)[X]补=11110011B,求[-X]补
(3)[X]补=10111110B,求[X]原 (4)[X]补=10111110B,求[X]反
答案:(1) 1100 0010 (2) 0000 1101 (3) 1100 0010 (4) 1011 110
3.17 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H, BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。(1)MOV BX,12 ;目标操作数为寄存器寻址
(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H
(3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H
(4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H
(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H
(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H
(7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H
(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H
(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H
3.18 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。
(1)XCHG CS,AX ;错,CS不能参与交换
(2)MOV [BX],[1000] ;错,存储器之不能交换
(3)XCHG BX,IP ;错,IP不能参与交换
(4)PUSH CS ;错,CS不能为PUSH的操作数
(5)POP CS ;错,不能将数据弹到CS中
(6)IN BX,DX ;输入/输出只能通过AL/AX
(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元
(8)MOV CS,[1000] ;CS不能作为目标寄存器
(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址
(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址
(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀
3.22 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
(1) SHR DX,1 ;DX=3C62H CF=1
(2) SAR DX,CL ;DX=03C6H CF=0
(3) SHL DX,CL ;DX=18A0H CF=1
(4) ROR DX,CL ;DX=2BC6H CF=0
(5) RCL DX,CL ;DX=18B7H CF=1
(6) RCR DH,1 ;DX=BCC5H CF=0
3.34编写代码,计算a+10b+100c+20d,其中a、b、c、d均为单字节无符号数,结果为16位,存入SUM开始的两单元中。
data segment
ma db 12 mb db 21 mc db 86 md db 150 SUM dw 0 data ends
code segment
assume
ds:data,cs:code start:mov ax,data
mov ds,ax
mov dh,0
mov dl,ma
mov ah,0
mov al,10
mul mb
add dx,ax
mov ah,0
mov al,100
mul mc
add dx,ax
mov ah,0
mov al,20
mul md
add dx,ax
mov SUM,dx
code ends end start
4.5 画出下列语句中的数据在存储器中的存储情况。
ORG 100H
VARB DB 34,34H,‘GOOD’,2 DUP(1,2 DUP(0))
VARW DW 5678H,‘CD’,$+2,2 DUP(100)
VARC EQU 12
4.6 按下列要求,写出各数据定义语句。
DB1为10H个重复的字节数据序列:1,2,5个3,4。
DB2为字符串‘STUDENTS’
DB3为十六进制数序列:12H,ABCDH
用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。
解答:
DB1 DB 16 DUP(1,2,5 DUP(3),4)
DB2 DB ‘STUDENTS’
DB3 DW 12H,0ABCDH
COUNT EQU DB2-DB1
4.8 对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?
PREP DB ?
TABA DW 5 DUP(?)
TABB DB ‘NEXT’
TABC DD 12345678H
(1)MOV AX,TYPE PREP ;AX=1
(2)MOV AX,TYPE TABA ;AX=2
(3)MOV AX,LENGTH TABA ;AX=5
(4)MOV AX,SIZE TABA ;AX=10
(5)MOV AX,LENGTH TABB ;AX=1
(6)MOV DX,SIZE TABC ;AX=4
5.1 什么是时钟周期、总线周期、指令周期?
答:8086CPU 必须在时钟信号 CLK 控制下工作,时钟信号是一个周期性的脉冲信号,一个时钟脉冲的时间长度称为一个时钟周期,是时钟频率(主频)的倒数,时钟周期是计算机系统中的时间基准。 8086CPU 要通过总线才能与外部交换信息,CPU通过总线接口单元与外部交换一次信息,称为一次总线操作,所耗用的时间称为一个总线周期。一个总线周期由若干个时钟周期组成,总线操作的类型不同,总线周期也不同。一个总线周期内完成的数据传输,一般有传送地址和传送数据两个过程。 8086CPU执行一条指令所需要的时间称为指令周期一个指令周期由若干个总线周期组成。
7.4 现有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0为1时表明输入数据准备好。试采用查询方式,编程实现从该设备读取100个字节数据并保存到2000H:2000H开始的内存中。程序为: