《现代微机原理与接口技术》第2版部分习题答?/span> 下载本文

合理的,共享Cache使得双核数据传递速度更快,其次是AMD的结构,比较差的是Pentium D的这种使用前端总线相连的结构,这样连接的两个核心必然会产生总线争抢,影响性能?

17. 如果AX=902FH, BX=8761H,则做过AX+BX后,EFLAG寄存器的?位会是多少?

答:EFLAG寄存器的?位是00010111B

18. ?088/8086中,逻辑地址FFFF?001, 00A2?7F和B800?73F的物理地址分别是多少?

答:物理地址=段地址×10H+偏移地址

所以FFFF?001的物理地址是FFFFH×10H?001H=FFFF1H 00A2?7F的物理地址?0A2×10H?37FH=00D9FH B800?73F的物理地址是B800×10H?73F=B973FH

19. ?088/8086中,从物理地址388H开始顺序存放下列三个双字节的数据,651AH, D761H?07BH,请问物理地址388H, 389H, 38AH, 38BH, 38CH?8DH 6个单元中分别是什么数据? 答:

地址

内容

388H 1AH 389H 65H 38AH 61H 38BH D7H 38CH 7BH 38DH 00H

6

??

1、假定(DS?2000H,(ES?2100H,(SS?1500H,(SI?00A0H,(BX?0100H,(BP?0010H,数据变量VAL的偏移地址?050H。请指出下列指令的源操作数字段是什么寻址方式,并给出它的逻辑地址和物理地址?

?)MOV AX?ABH ?)MOV AX,BX ?)MOV AX,[100H] ?)MOV AX,VAL

?)MOV AX,[BX] ?)MOV AX,ES:[BX] ?)MOV AX,[BP] ?)MOV AX?[SI] ?)MOV AX,[BX+10H] ?0)MOV AX,VAL[BX] ?1)MOV AX,[BX][SI] ?2)MOV AX,VAL[BX][SI] 答:?)立即数寻址 ?)寄存器寻址

?)直接寻址,逻辑地址?000:0100H,物理地址?0100H ?)直接寻址,逻辑地址?000:0050H,物理地址?0050H

?)寄存器间接寻址,逻辑地址?000:0100H,物理地址?0100H ?)寄存器间接寻址,逻辑地址?100:0100H,物理地址?1100H ?)寄存器间接寻址,逻辑地址?500:0010H,物理地址?5010H ?)寄存器间接寻址,逻辑地址?000:00A0H,物理地址?00A0H ?)基址寻址,逻辑地址?000:0110H,物理地址?0110H ?0)基址寻址,逻辑地址?000:0150H,物理地址?0150H

?1)基址变址寻址,逻辑地址?000:01A0H,物理地址?01A0H ?2)基址变址相对寻址,逻辑地址?000:01F0H,物理地址?01F0H

2、假定(DS?2000H,(ES?2100H,(SS?1500H,(SI?00A0H,(BX?0100H,(BP?0010H,(SP?0010H,数据变量VAL的偏移地址?050H。内存储器中数据单元如下:[20100H]=12H,[20101H]=34H,[20050H]=56H,[20051H]=78H,[21100H]=0ABH,[21101H]=90H,[15010H]=0CDH,[15011H]=0EFH,[200A0H]=01H,[200A1H]=23H,[20150H]=45H,[20151H]=67H,[201A0H]=89H,[201A1H]=0AH,[201F0H]=0BCH,[201F1H]=0DEH。要求写出下列指令单独执行的结果?

?)MOV AX?ABH ?)MOV AX,BX ?)MOV AX,[100H] ?)MOV VAL,BH

?)MOV AX,[BX] ?)MOV AX,ES:[BX] ?)MOV AX,[BP] ?)MOV AX?[SI] ?)MOV AX,[BX+50H] ?0)MOV VAL[BX],BP ?1)MOV AH,[BX][SI] ?2)MOV AL,VAL[BX][SI] ?3)PUSH SI ?4)POP AX 答:?)AX=00ABH ?)AX=0100H ?)AX=3412H ?)[20050H]=01H ?)AX=3412H ?)AX=90ABH ?)AX=0EFCDH ?)AX=2301H ?)AX=6745H ?0)[20150H]=10H,[20151H]=00H ?1)AH=89H ?2)AL=0BCH ?3)[1500FH]=00H,[1500EH]=0A0H ?4)AX=0EFCDH

3、指出下列指令的错误? (l)MOV AH,BX

7

?)MOV [BX],[SI] ?)MOV AX,[SI][DI]

?)MOV MYDAT[BX][SI],ES:AX ?)MOV BYTE PTR[BX]?000 ?)MOV BX,OFFSET MYDAT[SI] ?)MOV CS,AX

答:?)两个操作数长度不一?

?)两个操作数不能都是存储器操作数

?)变址寻址方式不能使用两个变址寄存??)寄存器寻址没有段超越用?

?)两个操作数长度不一致(?000超出字节数据范围??)OFFSET只对变量和标号表示的直接寻址有用 ?)CS不能做目的寄存器

16、阅读程序:

MOV CX?00?

MOV SI?FFFFH?

NEXT?INC SI? CMP BYTE PTR [SI]?A'? LOOPNZ NEXT? EXIT?

该程序段的功能是____________________________?

答:从DS:0000开始在连续?00个字节中查找字符’A?

17?程序填空?

把内存中从PACKED开始的8个字节单元中?6位组合BCD数转换成非组合BCD数,并把结果存放在从UNPACKED开始的16个字节单元中? MOV DX,___________? MOV CL,___________ MOV SI?? MOV DI,______________? CONVERT?MOV AL,[SI+PACKED]? MOV AH,AL? AND AL?FH? ________________? MOV [DI+UNPACKED],______________? ADD DI,_____________? ______________? DEC DX? JNZ CONVERT?

答:

HLT?

MOV DX,___8________? MOV CL,___4________

8

MOV SI?? MOV DI,_0_______? CONVERT?MOV AL,[SI+PACKED]? MOV AH,AL? AND AL?FH? _SHR AH, CL______? MOV [DI+UNPACKED],____AX__? ADD DI,_____2________? INC SI_? DEC DX? JNZ CONVERT? HLT?

汇编语言补充作业答案

1. 寻址方式小结。请根据已填的格式,完成下面表中的空白部分: 寻址方式 操作数物理地址(PA?指令格式举例 立即寻址 操作数由指令给出

MOV DX, 100H; 寄存器寻址 MOV AX, BX; 直接寻址 操作数的有效地址由指令直接给? 寄存器间?BX)

寻址 PA=(DS)×16+(SI)

(DI)

?(SS)×16+(BP) 基址寻址 变址寻址 基址变址?/p>

址 基址变址?

对寻址 答:

寻址方式 操作数物理地址(PA?指令格式举例 立即寻址 操作数由指令给出

MOV DX, 100H; 寄存器寻址 操作数在寄存器中

MOV AX, BX; 直接寻址 操作数的有效地址由指令直接给?MOV AX, [1234H] 寄存器间?BX)

MOV AX, [BX] 寻址

PA=(DS)×16+(SI)

MOV AX, [SI] (DI)

MOV AX, [DI] ?(SS)×16+(BP)

MOV AX, [BP] 基址寻址 PA=(DS)×16+(BX)+位移?MOV AX, BUFF[BX] PA=(SS)×16+(BP)+位移?MOV AX, BUFF[BP] 变址寻址

PA=(DS)×16+(SI)+位移?MOV AX, BUFF[SI] PA=(DS)×16+(DI)+位移?

MOV AX, BUFF[DI]

9

基址变址?/p>

PA=(DS)×16+(BX)+(SI) PA=(DS)×16+(BX)+(DI) PA=(SS)×16+(BP)+(SI) PA=(SS)×16+(BP)+(DI) PA=(DS)×16+(BX)+(SI) +位移?PA=(DS)×16+(BX)+(DI)+位移?PA=(SS)×16+(BP)+(SI) +位移?PA=(SS)×16+(BP)+(DI)+位移?

MOV AX, [BX][SI] MOV AX, [BX+DI] MOV AX, [BP][SI] MOV AX, [BP+DI] MOV AX, BUFF[BX][SI] MOV AX, BUFF[BX+DI] MOV AX, BUFF[BP][SI] MOV AX, BUFF[BP+DI]

基址变址相对寻址

2.指出下列8088指令的错误:

??MOV 2000, BP ??PUSH 2000 ??POP CS ??XLAT BX ??MUL AX, BX ??SHL DX, 8 ??IN AX, 0382H ??OUT AX, 20H ??MOVSB DI, SI ?0?LOOP CX 答:?)立即数不能做目的操作数

??088汇编的PUSH不能使用立即数做操作??)CS不能做POP指令的操作数 ?)XLAT中BX是隐含操作数 ?)MUL指令只有一个操作数

??088的SHL指令移位位数如果用立即数则只能是1 ?)IN指令?6位端口地址要用DX作为操作??)OUT指令两个操作数反??)MOVSB指令操作数均隐含

?0)LOOP指令中的CX操作数是隐含?

3. 按要求编写下面的程序?

1) 利用移位指令计算DX=3×AX?×BX,假设为无符号数运算,无进位?2) 用逻辑运算指令实现数字0~9的ASCII码与非压缩BCD码的互相转换 3) 把DX.AX中的双字逻辑右移4?

4) 假设?A00H:0000开始的4个字节中存放?个非压缩的BCD码,现在按照低地

址对低位,高地址对高位的原则,将他们合并到DX中?答:

1) MOV CX, AX SHL AX, 1 ; AX*2 ADD AX, CX ; AX*3 MOV DX, BX MOV CL, 3 SHL DX, CL ; BX*8

10

福利:打开支付宝首页搜索?08066754”即可领取红包,吃个早点,买杯饮料肯定够了,红包加倍最高可以领?9元红包!

「觉得内容不错,打赏支持一下?/p>

南京廖华

觉得内容不错,打赏支持一?/span>

福利:打开支付宝扫描二维码领红包,可免费下载资?微信?7702577729