第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为输入,...