第一章习题答案。
3. 填空:
解】1) (1234)10=( 10011010010 )2=( 4d2 )16
3) (271.33)10=( 100001111.010101 )2=( 10f.54 )16
4) (101011001001)2=( 2761 )10=( ac9 )16
6) (10101010.0111)2=( 170.4375 )10=( aa.7 )16
4. 已知x=36,y=-136,z=-1250,请写出x、y、z的16位原码、反码和补码。
解】x]原=0000 0000 0010 0100
y]原=1000 0000 1000 1000
z]原=1000 0100 1110 0010
x]反=0000 0000 0010 0100
y]反=1111 1111 0111 0111
z]反=1111 1011 0001 1101
x]补=0000 0000 0010 0100
y]补=1111 1111 0111 1000
z]补=1111 1011 0001 1110
5. 已知[x]补=01010101b,[y]补=10101010b,[z]补=1000111111111111b,求x、y、z及x+y、y-z的十进制值为多少?
解】y-z运算时y需要扩展符号位。
x=85y=-86
z=-28673
x+y=01010101b+10101010b=11111111b=-1
y-z=11111111 10101010b-10001111 11111111b
11111111 10101010b+01110000 00000001b
0110 1111 1010 1011b
第二章习题答案。
5. 求出下列运算后各个标志的状态,并说明进位标志和溢出标志的区别。
(1) 1278h + 3469h (2) 54e3h - 27a0h
(3) 3881h + 3597h (4) 01e3h - 01e3h
解】cf进位标志,反映在运算结果的最高位有无进位或借位。of溢出标志,反映运算结果是否超出了带符号数的表数范围。机器实际处理时判断是否溢出的方法是根据最高位的进位(cf)与次高位的进位是否相同来确定,若两者不相同则of=1(表示有溢出),否则of=0(表示无溢出)。
运算后各个标志的状态:
运算后各个标志的状态:
运算后各个标志的状态:
运算后各个标志的状态:
7. 8086cpu使用的存储器为什么要分段,怎样分段?为什么要设置段寄存器,有几个段寄存器?各段寄存器有什么意义?
解】8086 cpu内部数据结构是16位的,即所有的寄存器都是16位的,而外部寻址空间为1mb,即需要20位地址线。为了能用内部寄存器中的16位地址来寻址1mb空间,8086将1mb空间以16字节为一个内存节,共分成64k个节。节的起始地址分别为00000h、00010h、00020h、…、ffff0h,称为段基址。
节的起始地址的后4位二进制数为全0,称为节的段地址。
用于存放段地址的寄存器称为段寄存器,根据其主要用途,分为**段寄存器cs、数据段寄存器ds、堆栈段寄存器ss、附加段寄存器es。
**段寄存器cs:用来存放**段存储区域的起始地址。
数据段寄存器ds:数存放程序的数据存储区的起始地址。
堆栈段寄存器ss:用来存放堆栈存储区的起始地址。由堆栈段寄存器ss与堆栈指针寄存器sp来确定当前堆栈指令的操作地址。
附加段寄存器es:附加段是为某些字符串操作指令存放目的操作数而设置的一个附加的数据段,附加段寄存器用来存放该附加数据段存储区域的起始地址。
15. 设cs=1200h,ip=0ff00h,此时指令的物理地址是多少?指向这一物理地址的cs和ip的值是惟一的吗?
解】指令的物理地址:12000h+0ff00h=21f00h
指向这一物理地址的cs和ip的值不是惟一的。
16. 若cs=1000h,指出当前**段可寻址的存储空间的大小和地址范围。
解】当前**段可寻址的存储空间的大小:64kb
当前**段可寻址的存储空间的地址范围:10000h~1ffffh
第四章习题答案。
2. 指出下列指令中的非法指令。
1) mov bx,al2) mov cs,2000h
3) push 4567h4) xchg var1,var2
5) add al,148h (6) mov ds,2000h
7) mov bh,si8) sub 38h,al
解】非法指令:
1) mov bx,albx和al的长度不一致。
2) mov cs,2000hcs段寄存器不能作目的操作数。
3) push 4567h只能将寄存器或存储单元的内容压入堆栈,不能是立即数。
4) xchg var1,var2 两个存储单元之间不能直接交换数据。
5) add al,148h运算溢出。
6) mov ds,2000h立即数不能直接传送给ds段寄存器。
7) mov bh,sibh和si的长度不一致。
8) sub 38h,al目的操作数不能是立即数。
3. 若sp=2000h,ax=3355h,bx=4466h,试指出下列指令或程序段执行后有关寄存器的内容。
(1) push ax
执行后ax=?,sp=?
(2) push ax
push bx
pop dx
pop cx
执行后ax=?,cx=?,dx=?,sp=?
解】(1) 执行后ax=3355h,sp=1ffeh
2) 执行后ax=3355h,cx=3355h,dx=4466h,sp=2000h
4. 请按下面的要求写出相应的汇编指令或指令序列。
1) 将1234h送入ds中。
2) 将5678h与ax中的数相加,结果放在ax中。
3) 将datax和datay相加,其和放在datay中。
4) 将ax中的高4位变为全0。
5) 将bx中的低2位变为全1。
6) 将cx中的d3~d7位取反。
解】1) mov ax,1234h
mov ds,ax
2) add ax,5678h
3) mov ax,datax
add ax,datay
mov datay,ax
4) and ax,0fffh
5) or ax,0003h
6) 方法一:xor cx,00f8h
方法二:mov ax,cx
and ax,07h
xor cx,0ffh
and cx,0fff8h
add cx,ax
9. 执行下列程序段,指出各相关寄存器的内容。
mov ax,0a0bh
dec ax
sub ax,0ffh
and ax,00ffh
mov cl,3
sal al,cl
add al,25h
xchg al,ah
push ax
pop bx
inc bl
解】各相关寄存器的内容:
mov ax,0a0bh ;ax:0a0bh
dec axax:0a0ah
sub ax,0ffh ;ax:090bh
and ax,00ffh ;ax:000bh
mov cl,3cl:03h
sal al,clax:0058h
add al,25h ;ax:007dh
xchg al,ahax:7d00h
push axax:7d00h
pop bxbx:7d00h
inc blbx:7d01h
10. 用串操作指令将100h个字符从2100h处搬到1000h处,并且从中检索与al中所存字符相同的存储单元,并将该单元的内容替换成空格,本程序只替换检索到的第一个相同的单元。请在下列空格中填入合适的指令,使程序段完成上述功能。
mov si,2100h
mov cx,100hcld
mov di,1000h
mov cx,100h
jnz k1
mov [di],20h
k1: ┇解】
1) mov di,1000h
2) rep movsb
3) repne scasb
4) dec di
第五章习题答案。
1. 下列语句在存储器中分别为变量分配多少字节?
vr1 dw 9
vr2 dw 4 dup(?)
cont equ 10
我的微原作业
第七章作业。1.设某系统中cpu的寄存器和存储器的内容如下 20h 3ch 21h 00h 22h 86h 23h 0ehcs 2000hip 0010hss 1000hsp 0100hflags 0240h此时执行int 8 1 程序转向何处执行?2 堆栈栈顶6个单元的地址为多少?其内容分别是多少...
马原作业题有答案
第一章世界的物质性及其发展规律。一 单项选择题。1 否认世界统一性的哲学是 d a 唯心主义。b 形而上学。c 相对主义。d 二元论。2 旧唯物主义关于意识能动性的观点是b a 承认意识能动性。b 抹煞意识能动性。c 夸大意识能动性。d 有时承认意识能动性,有时抹煞意识能动性。3 物质的唯一特性是客...
马原作业题有答案
第一章世界的物质性及其发展规律。一 单项选择题。1 否认世界统一性的哲学是 d a 唯心主义 b 形而上学 c 相对主义 d 二元论。2 旧唯物主义关于意识能动性的观点是b a 承认意识能动性b 抹煞意识能动性。c 第一章世界的物质性及其发展规律马原作业题有答案211第一章世界的物质性及其发展规律。...