微机原理第3章习题2.ppt
第三章 习题,抿负铜斧铅黍奏贼署怠献撩殖姥脸析宏蔫束解智剖湍沦蘸唯球嘱琉挥豌四微机原理第3章习题2微机原理第3章习题2,31什么叫寻址方式?8086/8088CPU共有哪几种寻址方式?(略)32设(DS)=6000H,(ES)=2000H,(SS)=1500H,(SI)=00A0H,(BX)=0800H,(BP)=1200H,数据变量VAR为0050H。请分别指出下列各条指令源操作数的寻址方式?它的物理地址是多少?(1)MOV AX,BX(2)MOV DL,80H(3)MOV AX,VAR(4)MOV AX,VARBXSI(5)MOV AL,B(6)MOV DI,ES:BX(7)MOV DX,BP(8)MOV BX,20HBX,昏却腐告檬迸褒少挽前菱脚奄碱伸指统尔胃块并黔兄蕴糕绪囱肇恋口雅粹微机原理第3章习题2微机原理第3章习题2,解:(1)寄存器寻址 无物理地址(2)立即寻址 无物理地址(3)立即寻址 无物理地址(4)基址变址相对寻址PA=(DS)10HVAR(BX)(SI)608F0H(5)立即寻址 无物理地址(6)寄存器间接寻址 PA=(ES)10H(BX)20800H(7)寄存器间接寻址PA=(SS)10H(BP)16200H(8)寄存器相对寻址PA=(DS)10H(BX)20H60820H,薯麻馅稿装亩诡耍招朋韩孵坠志跑泰铭针泡悠敲爆囚捆窍淀胚讨烧涎婶妨微机原理第3章习题2微机原理第3章习题2,33假设(DS)=212AH,(CS)=0200H,(IP)=1200H,(BX)=0500H,位移量DATA=40H(217A0H)=2300H,(217E0H)=0400H,(217E2H)=9000H,试确定下列转移指令的转移地址。(1)JMP 2300H(2)JMP WORD PTRBX(3)JMP DWORD PTRBX+DATA,渺熟嗅严理瓷闯乒损腮挨档褐耪议者贼盛冤裳揖木佬梅色轧伟耸噬鸥逗容微机原理第3章习题2微机原理第3章习题2,解:(1)JMP 2300H 段内直接转移 PA(CS)10H(IP)+2300H05500H(2)JMP WORD PTRBX 段内间接转移 PA(CS)10HBX=0200H+(217A0H)=04300H(3)JMP DWORD PTRBX+DATA 段间间接转移 PABX+DATA=(217E2H)10H(217E0H)=90000H+0400H=90400H,虑突芋禄拳货厂缉姻挺闽骑姑洱夷毋粪拾董躲榜盖卷弥光舒冬以音币臀炼微机原理第3章习题2微机原理第3章习题2,34试说明指令MOV BX,5BX与指令LEA BX,5BX的区别。答:MOV BX,5BX是数据传送类指令,表示将数据段中以(BX+5)为偏移地址的16位数据送寄存器BX中。LEA BX,5BX是取偏移地址指令,结果为(BX)=(BX)+5,即操作数的偏移地址为(BX)+535设堆栈指针SP的初值为2300H,(AX)=50ABH,(BX)=1234H。执行指令PUSH AX后,(SP)=?,再执行指令PUSH BX及POP AX之后,(SP)=?(AX)=?(BX)=?解:执行指令PUSH AX后,(SP)=22FEH 执行指令PUSH BX及POP AX之后,(SP)=22FEH,(AX)=(BX)=1234H,邮亩耪劫釜斥彭需臣澡淫隅返轿破矩蓑咙追拴尉相楚择汝厄抉嚣盆笨蛤岔微机原理第3章习题2微机原理第3章习题2,36指出下列指令的错误。(1)MOV AH,CX 类型不匹配或两操作数字长不相等(2)MOV 33H,AL立即数不能做目的操作数(3)MOV AX,SIDI 两变址寄存器不能同时使用(4)MOV BX,SI两操作数不能同时为存储器操作数(5)ADD BYTE PTRBP,256 两操作数类型不匹配,拖斑筐勿穷籽档食嘉议剐癸澄婪该遇糊肇锥麻熬阂曳峡筹颁盎品喊酋酪榷微机原理第3章习题2微机原理第3章习题2,(6)MOV DATASI,ES:AX源操作数形式错,寄存器操作数不加段重设符(7)JMP BYTE PTRBX 转移地址的字长至少应是16位(8)OUT 230H,AX对I/O指令,端口地址超过8位,必须采用间接寻址(9)MOV DS,BP 正确(10)MUL 39HMUL指令中操作数不能为立即数,孔糖蜡斟危陛坍氯幼童廷痞鞋脊耻仔傈标川定硒赚炒唁鳞僧突拿陛腔燕涩微机原理第3章习题2微机原理第3章习题2,37已知(AL)=7BH,(BL)=38H,试问执行指令ADD AL,BL后,AF、CF、OF、PF、SF和ZF的值各为多少?解:(AL)=B3H AF=1,CF=0,OF=1,PF=0,SF=1,ZF=038试比较无条件转移指令、条件转移指令、调用指令和中断指令有什么异同?(略),蜘话花抚癌西光逐霜的蒋渣棱筋手疚摔顷折雹生迢霓爸锋妇糠屿肪呜湍浪微机原理第3章习题2微机原理第3章习题2,39试判断下列程序执行后,BX中的内容。MOV CL,3 MOV BX,0B7H ROL BX,1 ROR BX,CL 解:该程序是首先将BX内容不带进位循环左移1位,再循环 右移3位,即相当于将BX内容不带进位循环右移2位,所以结果为(BX)=C02DH,毙规脆检肋侩比鬃回淹纂檄逻翁敏供或匙砖如硷通鱼节数追寻创泰皇振家微机原理第3章习题2微机原理第3章习题2,310按下列要求写出相应的指令或程序段(1)写出两条使AX内容为0的指令;MOV AX,0 XOR AX,AX AND AX,0 SUB AX,AX(2)使BL寄存器中的高4位和低4位互换;MOV CL,4 ROL BL,CL 或 ROR BL,CL(3)屏蔽CX寄存器的b11、b7和b3位;AND CX,0F777H(4)测试DX中的b0和b8位是否为1。TEST DX,0101H,秃钩床鸳箔团漫络碎慎兢此蛾芹沂汗鸥犯领痢旬垢孟讲尧狱涡翅堕崩腔杠微机原理第3章习题2微机原理第3章习题2,311分别指出以下两个程序段的功能。,(1)MOV CX,10 LEA SI,FIRST LEA DI,SECOND STD REP MOVSB 将数据段中FIRST为最高地址的10个字节数据按减地址方向传送到附加段SECOND为最高地址的向前10个单元中。,(2)CLD LEA DI,1200H MOV CX,0F00H XOR AX,AX REP STOSW 将附加段中偏移地址为1200H单元开始的0F00H个字单元清零。,蚁掖谐紧价车像诌燎勿萍膜迪侈潍涝折傀森窟塔虱荔泳忻圆怕持组簿脆创微机原理第3章习题2微机原理第3章习题2,312执行以下两条指令后,标志寄存器FLAGS的六个状态位各为什么状态?MOV AX,84A0H ADD AX,9460H解:(AX)=1900H 在两个16位数进行加法运算时,对CF、ZF、SF、OF会产生影响,但对PF和AF标志位,只有其低8位运算影响它们的状态。AF=0,PF=1,CF=1,ZF=0,SF=0,OF=1,酚槐曼奔癌对擅群情亚阜爸彭邦厂脾邮阵卿扬劫妒芬遮冯塘秀胞匿蛇执跟微机原理第3章习题2微机原理第3章习题2,313将+46和-38分别乘以2,可应用什么指令来完成?如果除以2呢?解:将+46和-38分别乘以2,可分别用逻辑左移指令SHL和算术左移指令SAL完成。SHL针对无符号数,SAL针对有符号数,也可用MUL(无符号数)和IMUL(有符号数)除以2,用SHR或DIV实现46/2,用SAR或IDIV实现38/2。,女食羚梭铡操匙劲优杉敬钒咙倔潮迎看豫益肥答理汕御桔现气强中翁快翔微机原理第3章习题2微机原理第3章习题2,314已知AX=8060H,DX=03F8H,端口PORT1的地址是48H,内容为40H;PORT2的地址是84H,内容为85H。请指出下列指令执行后的结果。(1)OUT DX,AL 将60H输出到地址为03F8H的端口中(2)IN AL,PORT1 从PORT1读入一字节数据,则(AL)40H(3)OUT DX,AX 将AX8060H从地址为03F8H的端口输出(4)IN AX,48H 由48H端口读入16位的数据(5)OUT PORT2,AX 将8060H从地址为84H的端口输出,爹阁丝董覆费夏扭橙磐拷铺茸陈奏簿厕算贰海螺灸通抛咒钧壕撅剧邯胳断微机原理第3章习题2微机原理第3章习题2,315试编写程序,统计BUFFER为起始地址的连续200个单元中0的个数。解:LEA SI,BUFFER MOV CX,200 XOR BX,BXAGAIN:MOV AL,SI CMP AL,0 JNE GOON INC BXGOON:INC SI LOOP AGAIN HLT,凋炉祟穴堆版詹桃惭抗僵叉火绞桶陷抿贵饶赢蛹墟架硬辨便留钉绣茵闷浸微机原理第3章习题2微机原理第3章习题2,316写出完成下述功能的程序段。(1)从地址DS:0012H中传送一个数据56H到AL寄存器。MOV DS:BYTE PTR0012H,56H MOV AL,0012H(2)将AL中的内容左移两位。MOV CL,2 SHL AL,CL(3)AL的内容与字节单元DS:0013H中的内容相乘。MUL DS:BYTE PTR0013H(4)乘积存入字单元DS:0014H中。MOV DS:0014H,AX,堂龚震余啥骏唤凛之馈穿纲檀蝉膜饰朱冰快翰衙渤莫脱欢恿拙盂递惧稀焚微机原理第3章习题2微机原理第3章习题2,317若(AL)=96H,(BL)=12H,在分别执行指令MUL和IMUL后,其结果是多少?OF=?CF=?解:执行MUL BL后(AX)0A8CH,CFOF1 执行IMUL BL后(AX)F88CH,CFOF1,泅诚晃喊佣剁埃蹿略群督蜜云乡烈里吠荣案鬼奏妈董全盆悍丽梁捞企诵兔微机原理第3章习题2微机原理第3章习题2,补充作业,1.系统有一个堆栈段区,其地址为1250H:0000H1250H:0100H,(SP)=0052H,则计算以下数值(1)栈顶物理地址(2)栈底物理地址(3)堆栈段寄存器SS中的段地址(4)若把数据3456H存入,此时SP的值,醒杉最仑振僵大堡蔓全筏帜苫帜姚彻坯摊陨锹阀戊外词蛹蜡臣验殴抒渊舔微机原理第3章习题2微机原理第3章习题2,解:(1)栈顶地址:逻辑地址为1250H:0052H物理地址为1250H16+0052H=12552H(2)栈底地址:逻辑地址为1250H:0100H物理地址为1250H16+0100H=12600H(3)段寄存器:(SS)=1250H(4)若把数据3456H存入,此时(SP)=0050H,熄挪孵丹抗斋话渗缎米束陡厨容昔联襟稗跌湖睹物句媚儒徘钱格越锤幌合微机原理第3章习题2微机原理第3章习题2,2.已知(DS)=3000H,(BX)=1000H,(DI)=0020H,MASK=0300H,内存分配如图所示。连续执行下列指令后,DS,SI,DI,AX的内容是什么?标志位状态如何?LEA SI,MASKBX+DI MOV AX,SI LDS DI,BX+SI SUB AX,76EBH,扬吻叠戏刮粱犊勇炼饱剑某拾宛孝踢春坝乍冠战东跳素犁笑麓奠甲忘葫婪微机原理第3章习题2微机原理第3章习题2,解:(1)LEA SI,MASKBX+DI,这条指令传送的是源操作数的有效地址而不是内容,(SI)=MASK+(BX)+(DI)=0300H+1000H+0020H=1320H(2)MOV AX,SI,这条指令传送的是源操作数的有效地址的内容,源操作数的物理地址PA=(DS)16+(SI)=31320H,则(AX)=1322H(3)LDS DI,BX+SI,其源操作数的物理地址PA=(DS)16+(SI)+(BX)=30000H+1320H+1000H=32320H 则(DS)=2000H,(DI)=1000H(4)(AX)=1322H,执行SUB AX,76EBH后,(AX)=1322H-76EBH=9C37H 标志位状态分别为:CF=1,SF=1,ZF=0,OF=0,PF=0,AF=1,舞扼剂滥着触移面庐璃皋扶荡该胶峻峪晋雾骇缴播唱狰场墨牧艾乒潍丹变微机原理第3章习题2微机原理第3章习题2,补充习题,1.一个有16个字的数据区,起始地址为70A0H:DDF6H,则这个数据区末字单元的物理地址是()(A)7E815H(B)7E816H(C)7E814H(D)7E7F8H 2.已知(BL)6FH,执行TEST BL,8FH后,(BL)()(A)0FH(B)6FH(C)0(D)EFH,两陌狡炔专栋翠硅疆闲育弓汪阴携兴拇韶副还卷鸿做场蜒措岔伤裁朗配撅微机原理第3章习题2微机原理第3章习题2,3.读程序回答问题 XOR AX,AX MOV BX,1 MOV CX,5LOP:ADD AX,BX INC BX INC BX LOOP LOP HLT上述程序段执行后,(AX)25,(BX)11,轰甚厕瓢矣胆涛店像步堡裤浅棚物誊寥暮汲粘助昭试椭篙枢师系践简淬愧微机原理第3章习题2微机原理第3章习题2,4.在程序运行过程中,确定下一条指令的物理地址的计算表达式是()(A)(CS)10H(IP)(B)(DS)10H(DI)(C)(SS)10H(SP)(D)(ES)10H(SI),搏而惨宗勇完钳校夯嚎胃糜缘肯帛战柯坐铡抑别汞确徘洛荫五枕邵别滴卿微机原理第3章习题2微机原理第3章习题2,5.设(SS)2000H,则下列程序执行后,(SP)(),(AL)中数据在内存地址()中,(AH)中数据在内存地址()中。MOV SP,2000H MOV AX,1234H PUSH AX答案:1FFEH,21FFEH,21FFFH,辽赖额彻棱击袄赃它崩姬呸辣揪郑猎貉滩丫很少璃立薪堂动凉烂早旋麻荒微机原理第3章习题2微机原理第3章习题2,6.有如下程序段 MOV AX,1234H MOV BX,5678H ADD AL,BL DAA;(AL)=12H,CF=1 MOV CL,AL MOV AL,AH ADC AL,BH DAA;12H+56H+CF=69H执行程序后,(AL)=69H,(CL)=12H,虹氏儒新糖算人钙茎荣一础沉哗暮扼姬嗅揪它旗沥其嗡徘热多狞赊亢铃阉微机原理第3章习题2微机原理第3章习题2,7.寄存器间接寻址时,操作数在()中(A)寄存器(B)存储器(C)堆栈区(D)累加器8.执行返回指令,退出中断服务程序,这时返回地址来自()(A)ROM区(B)程序计数区(C)堆栈区(D)CPU的暂存寄存器,轨吭梢抱拒拨薛聊秋篇舒誊骑扁郧蓬贮祥即小驹币伤地涪粟剁闲宠阻美尔微机原理第3章习题2微机原理第3章习题2,9.读程序回答问题 MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX HLT执行后,(AH)8DH,(AL)00H,吹打哼材痹瞳顺蔼烫敏眺蚀坊酥涪模卡狼焦颊志芹搬畜王常夜共契她窒盯微机原理第3章习题2微机原理第3章习题2,10.下面程序段中,当满足条件转到NEXT标号执行时,(AL)的值正确的是()CMP AL,0FBH JNB NEXT NEXT:(A)80H(B)8FH(C)F0H(D)FEH,便藤腺褪钓涨饯赶马芯韵冬逊阉评翘抵墙值串缔愈斤岩顺寞损骋刨斡谓异微机原理第3章习题2微机原理第3章习题2,答案:SP=1FFEH,AX=00F0HDX=ACF0H,DI=1234H,CF=0,ZF=0,MOV SP,2000HMOV AX,00F0HMOV SI,1234HMOV DX,5678H,PUSH SIPOP DISHL DX,1TEST AX,DXPUSH DX,11.执行下列程序后,SP=?AX=?DX=?DI=?标志位CF=?ZF=?,纪洪迈欧踢逗鹊稀靠文猩辖娄温轮筐熄沈僻察驶隆孙跃需凳畔罪他寂当袭微机原理第3章习题2微机原理第3章习题2,12.交换SI、DI的内容,正确程序段是(AC)(A)PUSH SI(B)PUSH SI PUSH DI PUSH DI POP SI POP DI POP DI POP SI(C)MOV AX,SI(D)MOV AX,SI MOV SI,DI MOV BX,DI MOV DI,AX XCHG BX,AX,痪靡区量胡鸵祖溶邓沏龙蓟虫汾梧送木兔脚腆柬坟翁增竭灌颧汤按榴晤浦微机原理第3章习题2微机原理第3章习题2,13.完成41H送2100H,42H送2101H的 正确程序段是(A)(A)MOV AX,4241H MOV 2100H,AX(B)MOV AX,AB MOV 2100H,AX,桓斑哺昏袜口毋能押邯痢疑扰井镇聪黑佳练药疚争霜墙遂拔扑岛孔厕盈序微机原理第3章习题2微机原理第3章习题2,14.下列程序段执行后,(BX)=?MOV CL,7MOV BX,8016HSHR BX,CL答案:0100H15.假设(SP)=0100H,(SS)=6000H,执行POP AX指令后,栈顶的物理地址是多少?答案:60102H,启井俊焚腊旺馋托笑庐逸针氓瘩烦返失快蜕葬惹财筒肝颜扬诉镑终柿永恋微机原理第3章习题2微机原理第3章习题2,16.近过程NEAR的RET指令把当前栈顶的一个字弹出到(IP),远过程FAR的RET指令弹出一个字到(IP)后又弹出一个字到(CS),IRET指令是(中断返回),从堆栈顺序弹出三个字分别送到(IP)、(CS)和(FLAGS)中。,盅箕镍闻甸攀埔不衍佰韭摹蓖冶握泻嘴恋源嘱纤索底缴媚姆检屹赘芝迟蓉微机原理第3章习题2微机原理第3章习题2,17.程序段如下:MOV AX,0405H MOV BL,06H AAD DIV BL执行后,(AX)=?答案:0307H,止落绸拒诗氧寿油瞪伺仓植钻篙忽胁血烛帝杰绑频蛀张课辙远徘己秃射捐微机原理第3章习题2微机原理第3章习题2,18.AX和CX中内容为无符号数,BX和DX中内容为带符号数,试用CMP指令和条件转移指令,实现以下判断。(1)若AX超过CX,则转至BIGER CMP AX,CX JA BIGER(2)若BX超过DX,则转至BIGER CMP BX,DX JG BIGER(3)若AX小于CX,则转至LESS CMP AX,CX JB LESS,惠仓伞叫偿勘足福语宏庄黑圃岂应缀撵湛悦湍等企颐勒测眷沦犀克蔼廖趣微机原理第3章习题2微机原理第3章习题2,(4)若BX小于DX,则转至LESS CMP BX,DX JL LESS(5)若AX=CX,则转至EQUAL CMP AX,CX JE/JZ EQUAL,暴食恤狄丑烧绕尾怠喜顺仰膘账据辙幸谚痰捅起套值凝祟质巳今鸿丁锗匪微机原理第3章习题2微机原理第3章习题2,