没有合适的资源?快使用搜索试试~ 我知道了~
微机原理及应用很有用
5星 · 超过95%的资源 需积分: 9 2 下载量 87 浏览量
2010-11-06
09:38:16
上传
评论
收藏 119KB DOC 举报
温馨提示
试读
22页
微机原理及应用很有用,记得评价,谢谢
资源推荐
资源详情
资源评论
《微机原理及应用》习题答案
第一章
1.11 请完成下列数制转换:
(1) 将 174.66D 转换为对应的二进制和十六进制形式。
(2) 将 100011101011.01011B 转换为对应的十进制和十六进制形式。
(3) 将 F18A6.6H 转换为对应的二进制和十进制形式。
答:174.66D=10101110.1010B=AE.AH
100011101011.01011B=2283.34375D=8EB.58H
F18A6.6H=989350.375D
1.12 请写出与数据+37 和-37 对应的 8 位机器数原码、反码和补码,并分别用二进制和十
六进制表示出来。
答:-37D=(10100101B)
原
=(11011010B)
反
=(11011011B)
补
1.13 8 位机器数 46H,若作为无符号数和补码有符号数,其对应的真值各是什么?若作
为 BCD 码和 ASCII 码,其对应的又是什么?
答:无符号数 46H=70,补码 46H=+70 BCD 码 46H=46,ASCII 码 46H=“F”
第二章
2.5 什么是 8088 中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?1MB 最多能
分成多少个逻辑段?请将如下逻辑地址用物理地址表达:
(1) FFFFH:0H (2) 40H:17H (3) 2000H:4500H (4) B821H:4567H
答:⑴ FFFFH:0H = FFFF0H
⑵ 40H:17H = 00417H
⑶ 2000H:4500H = 24500H
⑷ B821H:4567H = BC777H
2.8 已 知 DS=2000H,BX=0100H,SI=0002, 存 储 单 元 [20100H]~[20103H] 依 次 存 放
12H,34H,56H,78H,[21200H]~[21203H]依次存放 2AH,4CH,87H,65H,说明下列每条指令执行
完后 AX 寄存器的内容以及源操作数的寻址方式?
答:⑴ AX=1200H,立即数寻址;
⑵ AX=0100H,寄存器寻址;
⑶ AX=4C2AH,直接寻址;
⑷ AX=3412H,寄存器间接寻址;
⑸ AX=4C2AH,寄存器相对寻址;
⑹ AX=7865H,基址变址寻址;
⑺ AX=65B7H,基址变址相对寻址。
2.9 说明下面各条指令的具体错误原因:
(1) mov cx,dl (2)mov ip,ax (3)mov es,1234h (4)mov es,ds
(5) mov al,300 (6)mov [sp],ax (7)mov ax,bx+di (8)mov 20h,ah
答: ⑴操作数类型不同;
⑵ 不能手工修改 IP;
⑶ 不能将立即数直接 MOV 到段寄存器;
⑷ 不能在段寄存器之间直接 MOV 数据;
⑸300 大于 AL 所能存放的数据的范围;
⑹ 寄存器间接寻址只能用 BX/BP/SI/DI 之一;
⑺MOV AX,[BX+DI];
⑻ 目的操作数不能是立即数。
2.10 已知数字 0~9 对应的格雷码依次为:18H,34H,05H,06H,09H,0AH,0CH,11H,12H,14H,
它存在于以 table 为首地址(设为 200H)的连续区域中。请为如下程序段的每条指令加上
注释,说明每条指令的功能和执行结果。
lea bx,table
mov al,8
xlat
答:
lea bx,table ;bx=0200h
mov al,8 ;al=08h
xlat ;al=12h
2.11 给出下列各条指令执行后的 AL 值,以及 CF,ZF,SF,OF 和 PF 的状态:
mov al,89h
add al,al
add al,9dh
cmp al,0bch
sub al,al
dec al
inc al
答:⑴ al=89h
⑵ al=12h,CF=1,ZF=0,SF=0,OF=1,PF=1,AF=1
⑶ al=afh, CF=0,ZF=0,SF=1,OF=0,PF=1,AF=0
⑷ al=afh, CF=1,ZF=0,SF=1,OF=1,PF=1,AF=0
⑸ al=00h,CF=0,ZF=1,SF=0,OF=0,PF=1,AF=0
⑹ al=ffh, CF=0,ZF=0,SF=1,OF=0,PF=1,AF=1
⑺ al=00h,CF=0,ZF=1,SF=0,OF=0,PF=1,AF=1
2.12 请分别用一条汇编语言指令完成如下功能:
(1)把 BX 寄存器和 DX 寄存器的内容相加,结果存入 DX 寄存器。
(2)用寄存器 BX 和 SI 的基址变址寻址方式把存储器的一个字节与 AL 寄存器的内容相加
并把结果送到 AL 中。
(3) 用 BX 和位移量 0B2H 的寄存器相对寻址方式把存储器中的一个字和 CX 寄存器的内
容相加,并把结果送回存储器中。
(4) 用位移量为 0520H 的直接寻址方式把存储器中的一个字与数 3412H 相加,并把结果
送回该存储单元中。
(5) 把数 0A0H 与 AL 寄存器的内容相加,并把结果送回 AL 中。
答:
⑴ add dx, bx;
⑵ add al,[bx+si];
⑶ add [bx+00b2h],cx
⑷ add word ptr [0520h],3412h
⑸ add al,0a0h
2.13 设 X,Y,Z,V 均为 16 位带符号数,分别装在 X,Y,Z,V 存储器单元中,阅读如下程序段,
得出它的运算公式,并说明运算结果存于何处。
mov ax,x
imul y
mov cx,ax
mox bx,dx
mov ax,z
cwd
add cx,ax
adc bx,dx
sub cx,540
abb bx,0
mov ax,v
cwd
sub ax,cx
abb dx,bx
idiv x
答:(V -( X * Y + Z - 540 ) )/ X
2.14 给出下列各条指令执行后的结果,以及状态标志 CF、OF、SF、ZF、PF 的状态。
mov ax,1470h
and ax,ax
or ax,ax
xor ax,ax
not ax
test ax,0f0f0h
答:⑴ ax=1470h
⑵ ax=1470h,CF=0,ZF=0,SF=0,OF=0,PF=0
⑶ ax=1470h,CF=0,ZF=0,SF=0,OF=0,PF=0
⑷ ax=0000h,CF=0,ZF=0,SF=0,OF=1,PF=1
⑸ ax=0ffffh, CF=0,ZF=0,SF=0,OF=1,PF=1
⑹ ax=0ffffh, CF=0,ZF=0,SF=1,OF=0,PF=1
2.16 假设 DS=2000H,BX=1256H,TABLE 的偏移地址是 20A1H,物理地址 232F7H 处存
放 3280H,试问执行下列段内间接寻址的转移指令后,转移的有效地址是什么?
答:⑴ 1256h; ⑵ 3280h
2.17 判断下列程序段跳转的条件
(1) xor ax,leleh
je equal
(2) test al,10000001b
jnz there
(3) cmp cx,64h
jb there
答:⑴ ax=1e1eh; ⑵ al=1******1b; ⑶ cx<64h
2.18 如下是一段软件延时程序,请问 NOP 指令执行了多少次?
xor cx,cx
delay: nop
loop delay
答:65536
2.19 有一个首地址为 array 的 20 个字的数组,说明下列程序段的功能。
mov cx,20
mov ax,0
mov si,ax
sumlp: add ax,array[si]
add si,2
loop sumlp
mov total,ax
答:将 array 数组的 20 个字(无进位)累加,其和存入 total 单元。
2.20 按照下列要求,编写相应的程序段:
(1) 由 string 指示的起始地址的主存单元中存放一个字符串(长度大于 6),把该字符
串的第 1 个和第 6 个字符(字节量)传送给 DX 寄存器。
(2) 有两个 32 位数值,按“小端方式”存放在两个缓冲区 buffer1 和 buffer2 中,编写程序
段完成 DX.AX←buffer1-buffer2 功能。
(3) 编写一个程序段,在 DX 高 4 位全为 0 时,使 AX=0;否则,使 AX=-1。
(4) 把 DX.AX 中的双字右移 4 位。
(5) 有一个 100 个字节元素的数组,其首地址为 array,将每个元素减 1(不考虑溢出或借
位)存于原处。
答:
⑴ mov dl,string
mov dh,string+5
⑵ mov ax,word ptr buffer1
sub ax, word ptr buffer2
mov dx,word ptr buffer1+2
sbb dx,buffer2+2
⑶ test dx,0f0h
je t1
mov ax,-1
jmp done
t1: mov ax,0
done: …..
⑷ mov ax,1234h
mov dx,5678h
mov cx,4
lp1:
shr dx,1
rcr ax,1
loop lp1
⑸ lea bx,array
mov cx,100
lp1:
sub [bx],1
inc bx
loop lp1
2.25 编写一个程序段:先提示输入数字“Input Number:0~9”,然后在下一行显示输入的数字,
结束;如果不是键入了 0~9 数字,就提示错误“Error!”,继续等待输入数字。
答:
.model small
.stack 100h
.data
message db “Input Number : 0~9”,0dh,0ah, “$”
error db “Error!”,0dh,0ah, “$”
.code
.startup
mov dx,offset message
mov ah,09h
int 21h
begin1: mov ah,01h
int 21h
cmp al, “0”
jb err1
cmp al, “9”
ja err1
mov dl,al
mov ah,02h
int 21h
.exit
err1: mov offset error
mov ah,09h
int 21h
jmp begin1
end
第三章
3.11 请设置一个数据段,按照如下要求定义变量:
(1)my1b 为字符串变量,表示字符串“Personal Computer”。
(2)my2b 为用十进制数表示的字节变量,这个数的大小为 20。
(3)my3b 为用十六进制数表示的字节变量,这个数的大小为 20。
(4)my4b 为用二进制数表示的字节变量,这个数的大小为 20。
(5)my5w 为 20 个未赋值的字变量。
(6)my6c 为 100 的符号常量。
(7)my7c 为字符串常量,代替字符串“Personal Computer”。
答:
my1b db “Personal Computer”
my2b db 20
剩余21页未读,继续阅读
资源评论
- dzgxh2011-10-26三章的解答,这是哪本教材啊
zhapkai200589
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功