第一章
1.5 写出下列真值对应的原码和补码的形式。
(1)X=-1110011B (2)X=-71D
(3)X=+1001001B 答:(1)[X]原 =11110011 [X]补 = 10001101
(2)[X]原 = 110000111 [X]补 = 101111001 (3)[X]原 = 01001001 [X]补 = 10110111
1.7 已知X和Y的真值,求[X+Y]补=?
(1)X=-1110111B ,Y=+1011010B (2)X=56,Y=-21 答:(1)X+Y = -39D ,[X+Y]补 = 1011001
(2)X+Y =35 ,[X+Y]补= 0100011
1.8 Y1=?Y2=?Y3=?138译码器哪一个输出端会输出低电平?
答:Y1=0,Y2=1,Y3=0,义译码器的Y2输出端会输出低电平。
第二章
2.3 说明8088CPU中EU和BIU的主要功能。在执行指令时,EU能直接访问存储器吗?
答:EU的主要功能是:执行指令、分析指令、暂存中间运算结果并保留结果的特征。BIU负责CPU与存储器、I/O接口之间的信息传送。EU不能直接访问内存,而是通过BIU,获取数据、送货出运算结果、从指令队列中取指令。
2.7 在8086/8088CPU中,标志寄存器包含哪些标志位?各位为0(为1)分别代表什么含义?
答:CF:进位标志位。当进行加减运算时,若最高位向前有进借位,则CF=1,否则CF=0; PF:奇偶标志位。当运算结果低8位中1的个数为偶数PF=1,为奇数时PF=0; AF:辅助进位标志位。在加减法操作中,D3向D4有进位借位发生时,AF=1,否则AF=0;DAA和DAS指令测试这个标志位,以便在BCD加法或者减法之后调整AL中的值。
ZF:零标志位。当运算结果为0时ZF=1,否则ZF=0;
SF:符号标志位。当运算结果的最高位为1时,SF=1,否则SF=0;
OF:溢出标志位。当运算结果超出了带符号数的范围,即溢出时OF=1,否则OF=0; TF:陷阱标志位。当TF=1时,激活处理器的调试特性,使CPU处于单步执行指令的工作方式,每执行一条指令后,自动产生一次单步中断,从而使用户能逐条指令地检查程序。
IF:中断允许标志位。IF=1使CPU可以相应可屏蔽中断请求。当IF=0时,使CPU禁止响应可屏蔽中断请求。IF的状态对不可屏蔽中断及内部中断没有影响。
DF:方向标志位。方向标志位在执行串操作指令时控制操作的方向。DF=1时按减地址方式进行,即从高地址开始,每进行一次操作,指针地址自动减一或者减二;DF=0时则按增地址方式进行。
2.10 在8088CPU中,物理地址和逻辑地址是指什么?已知逻辑地址为1F00:38A0H,如何计算出其对应的物理地址?若已知物理地址,其逻辑地址唯一吗?
答:物理地址:物理内存的内存单元的20位称为物理地址。逻辑地址:段基地址和段内
偏移地址称为逻辑地址。逻辑地址的段基址左移四位,再加上偏移地址,即可得到20位物理地址,即2280AH。逻辑地址不唯一。
第三章
3.2 设DS=6000H,ES=2000H,SS=1500H,SI=00A0H,BX=0800H,BP=1200H,字符常数VAR为0050H。请分别指出下列各指令源操作数的寻址方式,并计算除立即寻址外的其它寻址方式下源操作数的物理地址。
答:
(1)MOV AX, BX
寄存器寻址,物理地址为BX的物理地址 (2)MOV DL,80H
立即寻址
(3)MOV AX,VAR
直接寻址;物理地址为60050H (4)MOV AX,VAR[BX][SI]
基址-变址-相对寻址;物理地址为608F0H (5)MOV AL,’B’
立即寻址
(6)MOV DI,ES:[BX]
寄存器间接寻址;物理地址为20800H (7)MOV DX,[BP]
寄存器间接寻址;物理地址为16200H (8)MOV BX,20H[BX]
寄存器相对寻址;物理地址为60820H 3.5 设堆栈指针SP的初值为2300H,AX=50ABH,BX=1234H,执行指令PUSH AX后,SP=?在执行指令PUSH BX 及POP AX后,SP=?AX=?BX=?
答:SP=22FEH ;SP=22FEH,AX=1234H,BX=1234H
3.7 已知AL=7BH,BL=38H,试问执行指令ADD AL,BL后,AF、CF、OF、PF、SF和ZF的值各为多少?
答:AF=0,CF=0,OF=1,PF=1,SF=1,ZF=0
3.10 按下列要求写出相应的指令或者程序段。
(1)写出两条使AX内容为0的指令。
XOR AX,AX AND AX,0000H
(2)使BL寄存器中的高四位和低四位互换。
ROL BL,4
(3)屏蔽CX寄存器的D11、D7和D3位。
AND CX,0F777H
(4)测试DX中的D0和D8位是否为1.
AND DX,0101H
3.15 试编写程序,统计BUFFER为起始地址的200个单元中0的个数。
DATA SEGMENT
BUFFER DB 200 DUP(?) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX MOV CX,200
AGAIN: LEA SI,BUFFER
MOV AL,[SI] CMP AL,0 MOV BL,0 JNE NEXT INC BL
NEXT: INC SI
LOOP AGAIN MOV AH,4CH INT 21
CODE ENDS
END START
;初始化 ;循环次数
;取buffer偏移地址
;计数
;不是0则跳到下一个 ;为0,计数+1 ;取下一个单元
;若CX不为0,继续循环 ;结束
第四章
4.1 分别用DB、DW、DD伪指令写出在DATA开始的连续8个单元中依次存放数据11H、22H、33H、44H、55H、66H、77H、88H的数据定义语句。 答:
DATA DB 11H,22H,33H,44H,55H,66H,77H,88H DATA DW 2211H,4433H,6655H,8877H DATA DD 44332211H,88776655H
4.5 试编写程序,将buffer中的第一个8位二进制数的高4位和低4位分别转换为ASIIC码,并按位数高低顺序放在ANSWER开始的内存单元中。
答:
DATA SEGMENT
BUFFER DB 2 DUP(?) ANSWER DB 4 DUP(?) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX ;初始化 MOV CX,2 ;计循环次数
hhu微机原理与接口作业前四章
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)