微机原理答案

发布 2022-09-04 21:15:28 阅读 2689

第3章 8086/8088指令系统与寻址方式习题。

3. 3 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.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。

1)xchg cs,ax错,cs不能参与交换。

2)mov [bx],[1000] ;错,存储器之不能交换。

3)xchg bx,ip错,ip不能参与交换。

4)push cs

5)pop cs错,不能将数据弹到cs中。

6)in bx,dx输入/输出只能通过al/ax

7)mov byte[bx],1000 ;1000大于255,不能装入字节单元。

8)mov cs,[1000cs不能作为目标寄存器。

9)mov bx,offset var[si] ;offset只能取变量的偏移地址。

10)mov ax,[si][di] ;si、di不能成为基址加变址。

11)mov count[bx][si],es:ax ;ax是寄存器,不能加段前缀。

3.7 设当前 ss=2010h,sp=fe00h,bx=3457h,计算当前栈顶的地址为多少?当执行 push bx 指令后,栈顶地址和栈顶2个字节的内容分别是什么?

当前栈顶的地址=2ff00h

当执行push bx 指令后,栈顶地址=2fefeh

2fefeh)=57h

2feffh)=34h

3.8 设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.9 设ax=0a69h,value字变量中存放的内容为1927h,写出下列各条指令执行后寄存器和cf、zf、of、sf、pf的值。

ax cf zf of sf pf

1)xor ax,value ; 134eh 0 0 0 0 1

2)and ax,value ; 0821h 0 0 0 0 1

3)sub ax,value ; f142h 1 0 0 1 1

4)cmp ax,value ; 0a69h 1 0 0 1 1

5)not axf596h x x x x x

6)test ax,value ; 0a69h 0 0 0 0 1

3.10 设ax和bx中是符号数,cx和dx是无符号数,请分别为下列各项确定cmp和条件转移指令。

1) cx值超过dx转移。

2) ax未超过bx转移。

3) dx为0转移。

4) cx值等于小于dx转移。

1) cmp cx,dx

ja next

2) cmp ax,bx

jle next

3) cmp dx,0

jz next

4) cmp cx,dx

jbe next

3.11 阅11 阅读分析下列指令序列:

add ax,bx

jno l1

jnc l2

sub ax,bx

jnc l3

jno l4

jmp l5

若ax和bx的初值分别为以下5种情况,则执行该指令序列后,程序将分别转向何处(l1~l5中的一个)。

1) ax=13c6h, bx=80dch

2) ax=0b568h,bx=54b7h

3) ax=42c8h, bx=608dh

4) ax=0d023h,bx=9fd0h

5) ax=9fd0h, bx=0d023h

1) 转l1

2) 转l1

3) 转l2

4) 转l5

5) 转l5

第四章汇编语言程序设计习题。

4.5 画出下列语句中的数据在存储器中的存储情况。

varb db 34,34h,‘good’,2 dup(1,2 dup(0))

varw dw 5678h,‘cd’,$2,2 dup(100)

varc equ 12

varb varw

4.6 按下列要求,写出各数据定义语句。

1) db1为10h个重复的字节数据序列:1,2,5个3,4。

2) db2为字符串‘students’

3) db3为十六进制数序列:12h,abcdh

4) 用等值语句给符号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’

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

4.10 若自string单元开始存放有一个字符串(以字符‘$’结束);

1) 编程统计该字符串长度(不包含 $ 字符,并假设长度为两字节)。

2) 把字符串长度放在string 单元,把整个字符串往下移两个单元。

程序段为:1) mov si,offset string

xor bx,bx

cont:mov al,[si]

cmp al,‘$

jz next

inc bx

inc si

jmp cont

next: mov ah,4ch

int 21h

2) string db

count equ $-string

微机原理答案

1.串行通信与并行通信的主要区别是什么?各有优缺点?答 按信息的传送方式可将数据通信分为并行通信与串行通信两种 并行通信 是指利用多条数据传输线将一个数据的各位同时进行传送。特点 传输速度快,适用于短距离通信。串行通信 是指利用一条传输线将数据的各位一位位地顺序进行传送。串行通信又可分为异步通信和同...

微机原理A答案

安徽大学20 11 20 12 学年第 2 学期。微机原理及应用 a卷 考试试题参 及评分标准。一 单项选择题 每小题2分,共20分 1 a2 b 3 a4 c 5 c6 b 7 d8 c 9 c10 b 二 填空题 每空1分,共20分 10000011 ch,e896h,cf 1,of 0,zf ...

微机原理答案

微机原理第9章部分习题答案。1 1 d 2 c 3 b 4 d 2 填空题。1 3,基本输入 输出方式,选通输入 输出方式,双向总线i o方式。2 外设响应信号。3 方式选择控制字,置位 复位控制字。4 中断允许信号,pc6 3 设8255a的端口a和b均工作与方式1,端口a输出,端口b和c为输入,...