文档详情

微型计算机原理与应用

m****
实名认证
店铺
DOCX
28.92KB
约13页
文档ID:169869604
微型计算机原理与应用_第1页
1/13

机原理第七章答案7.3 设 AX=1122,BX=3344H,CX=5566H,SS=095BH,SP=0040H, 下述程序执行 后 AX,BX,CX,DX 4 个通用寄存器内容是多少 ?画出堆栈存储器的物理地址 及存储内容和 SP 指向的示意图PUSHAXPUSHBXPUSHCXPOPBXPOPAXPOPDX参考答案:(BX)=5566H, (AX)=3344H, (DX)=1122H , (CX)=5566H堆段物理地址=SS*16(左移 4 位)+SP095EBH095ECH095FDH66H55H44H33H22H11H095EEH095EFHSP— 095F0H7・4设SP=0040H如果用进栈指令存入5个数据,则SP=0036H ,若用出栈 指令取出两个数据, 则 SP=003AH 7・5将表中程序段各指令执行后AX的值用十六进制数填入表中参考答案:程序段AX程序段AXMOV AX,00OR AX3FDFHBFDFHDEC AXFFFFHAND AX,0EBEDHABCDHADD AX,7FFFH7FFEHXCHG AH,ALCDABHADC AX,18000HSAL AX,19B56HNEG AX8000HRCL AX,136ADH7・6用十六进制数填下表,已知DS = 1000H,ES = 2000H,SS=0FC0H,通用寄存器 的值为0。

参考答案:逻辑地址=段基址:段内偏移地址BP以SS为默认段基址,其余寄存器以DS为默认段基址ES:为段前缀,以ES为段基址指令存储器操作数逻辑地址SUB [BP],AL0FC0H:0000HMOV [BX],BH1000H:0000HMOV [DI],DL1000H:0000HMOV ES:[SI],BL2000H:0000HADD 5OOH[BP],AH0FCOH:O50OHSUB [SI-3OOH],AL1O0OH:FD0OHMOV 1OOOH[DI],DL1O0OH:1O0OHMOV [BX-8],CL1000H:FFF8HMOV ES:1OOOH[DI],CH2OOOH:1O0OHMOV [BP+SI],DHOFCOH:OOOOHMOV [BX+DI],DL1OOOH:0OOOH7.7 试给出执行完下列指令后 OF、SF、ZF、CF4 个可测试标志位的状态(用十六进制给出FLAG的值,其余各位为0 )(1) MOV AX,2345HADD AX,3219H(3)MOV CX,3579HSUB CX,4EC1H(2) MOV BX,5439HADD BX,456AH(4) MOV DX,9D82HSUB DX,4B5FHOFDFIFTFSFZF0AF0PF0CF溢 出方 向中 断陷 阱符 号为 零辅进奇 偶进位参考答案:(这里除了上面4个标志还考虑了奇偶标志PF和辅助进位标志AF )1)AX=555EH FLAG=0000HOFDFIFTFSFZF0AF0PF0CF0000000000000000(2) BX=99A3H FLAG=0894HOFDFIFTFSFZF0AF0PF0CF0000100010010100(3) CX=E6B8 FLAG=0081HOFDFIFTFSFZF0AF0PF0CF0000000010000001(4) DX=5223 FLAG=0014HOFDFIFTFSFZFAFPF0CF00000000000101007.8 AX中有一负数,欲求其绝对值,若该数为补码,则使用指令 理竺AX ;若为原码则用指令AND AX,7FFFH。

7.9 分别写出实现如下功能的程序段:(1 )将AX中间8位(做高8位),BX低4位和DX高4位(做低4位)拼成一个新字 注意:左移右移操作)AND AX,0FF0HMOV CL,04HSHL AX,CLAND BL,0FHAND DH,0F0HSHR DH,CLSHL BL,CLOR AL,DHOR AL,BL⑵将CX中间8位取反,其余位不变XOR CX,0FF0H⑶将数据段以BX为偏移地址的连续3单元中的无符号数求和MOV CX,3MOV AL,0LAB:ADD AL,[BX]adc ah,ooh ;(注意字节单元的和可能超过一个字节,故这里和扩展至AH)INc BXLOOP LAB⑷ 将数据段中以BX为偏移地址的连续4单元中的内容颠倒过来MOV cX,2;(4/2单元个数除 2, 循环计数)MOV SI,BXADD SI,3;( 指向最后一个数据单元, 首地址+单元个数-1)LAB:MOV AL,[BX]XCHG AL,[SI]MOV [BX],ALINC BXDEC SILOOP LAB⑸ 将BX中的4位压缩BCD数用非压缩数形式按序放在AL,BL, CL和DL中MOV CL,4 (注意先后次序,不能用其它寄存器)MOV DL,BLAND DL,0FHMOV AL,BHSHR AL,CLXCHG BH,BLAND BL,0FHSHR BH,CLMOV CL,BH⑹ 不用乘法指令实现AL (无符号数)乘以20AL*(24+22)( 24左移4位,22左移2位)MOV AH,0MOV CL,2SAL AX,CL ;进行乘4操作MOV BX,AX ;保留乘4中间结果SAL AX,CL;再移 2次,相当于乘16sqnljj<11•务>1H O|HgHgg|H常HCM cnH cn coCM S(怜BSH@K.LNn8・>Eg -0009H34HOOOAH35HNB -OOOBH02H000CH02H000DH02HNW -O0OEH78HOOOFHOOH0010HAAH0011HFDHP -0012HFFH0013HFFH2)在下表中填写各变量的偏移地址和各变量的值变量名偏移地址变量值变量名偏移地址变量值S10000HOOHNWOOOEH0078HS20006H31HP0012HFFFFHNBOOOBH02H(3) 填写表中程序段各指令执行后 。

目的寄存器的值 ,并指出源操作数所使用程序段目的寄存器的值源操作数的寻址方式MOV BX , OFFSET0003H立即寻址S1+3MOV SI, OFFSET S20006H立即寻址MOV CL, COUNT000BH立即寻址MOV BRNW+2FDAAH直接寻址MOV DX, WORD PTR0202H直接寻址NBMOV AL,[SI+3]34H变址寻址MOV AH,[SI+BX+1]35H基址变址寻址MOV CH , BYTE PTRFDH直接寻址NW+3的寻址方式(注意 : COUNT 是符号常量是立即数)4)改正下列不正确的指令错误a. MOV AX,S1改正MOV AX,WORD PTR S1b. MOV BP,OFFSET S2改正MOV BX,OFFSET S2MOV CL,[BP]MOV CL,[BX]c. MOV SI,OFFSET NB改正MOV SI,OFFSET NBMOV [SI],‘+'MOV BYTE PTR [SI],‘+'d. MOV DL,NW+2改正 MOV DL, BYTE PTR NW+2e. MOV DI,CH改正 MOV DI,CXf. MOV BX, OFFSET S1 改正 MOV BX, OFFSET S1MOV DH,BX+3MOV DH,[BX+3]g. INC COUNT改正 MOV BX,COUNT INC BX (符号常数不能加1)h. MOV NB,S2改正MOV ALQ MOV NB,AL(两个内存变量不能直接传送)i. MOV AX,[BX+S1]改正 MOV AX,WORD PTR [BX+S1]j. ADD AX,[DX+NW]改正 ADD AX,[BX+NW]。

下载提示
相关文档
正为您匹配相似的精品文档