收藏 分享(赏)

第3章作业习题课_xly.ppt

上传人:tkhy51908 文档编号:5552076 上传时间:2019-03-07 格式:PPT 页数:41 大小:204KB
下载 相关 举报
第3章作业习题课_xly.ppt_第1页
第1页 / 共41页
第3章作业习题课_xly.ppt_第2页
第2页 / 共41页
第3章作业习题课_xly.ppt_第3页
第3页 / 共41页
第3章作业习题课_xly.ppt_第4页
第4页 / 共41页
第3章作业习题课_xly.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、1,第三章作业习题课 P121 (2,3,6,8,9,10,11,13,14,15,18),杭州电子科技大学自动化学院,微机原理与接口技术,2,2.已知:DS=1000H, BX=0200H, SI=02H,(10200H10205H)依次存有10H, 2AH, 3CH, 46H, 59H, 6BH。下列每条指令执行完后AX寄存器的内容各是什么?MOV AX, 0200H AX=0200HMOV AX, 200H 物理地址=1000H10H+200H=10200H, AX=2A10H,3,MOV AX, BX AX=0200H MOV AX , 3BX 物理地址=1000H10H +0200H

2、+3H=10203H, AX=5946H MOV AX , BX+SI物理地址=1000H10H +0200H+2H=10202H , AX=463CH MOV AX, 2BX+SI物理地址=1000H10H +0200H+2H+2H=10204H , AX=6B59H,4,3.设DS1000H,ES2000H,SS3500H,SI00A0H,DI0024H,BX0100H,BP0200H,数据段中变量名为VAL的偏移地址值为0030H,试说明下列源操作数字段的寻址方式是什么?物理地址值是多少?,5,(1)MOV AX, 100H 直接寻址方式,10100H(2)MOV AX, VAL 直接寻

3、址方式,10030H(3)MOV AX, BX 寄存器间接寻址,10100H(4)MOV AX, ES:BX 带段超越前缀的寄存器间接寻址,20100H(5)MOV AX, SI 寄存器间接寻址,100A0H(6)MOV AX, BX+10H 寄存器相对寻址,10110H(7)MOV AX, BP 寄存器间接寻址,35200H(8)MOV AX, VALBPSI 相对基址变址寻址,352D0H(9)MOV AX, VALBXDI 相对基址变址寻址,10154H(10)MOV AX, BPDI 基址变址寻址,35224H,6,6.指出下列指令哪些是错误的,错在哪里。MOV DL, AX错,寄存器

4、寻址方式中,目的操作数与源操作数长度必须一致 MOV 8650, AX错,目的操作数不可以是立即数 MOV DS, 0200H错,MOV指令不允许将立即数传入段寄存器 MOV BX,1200H错, MOV指令的两个操作数不能同时为存储器,7,MOV IP, 0FFH错, IP不能作为MOV指令的目的操作数 MOV BX+SI+3, IP错, IP不能作为MOV指令的源操作数 MOV AX,BXBP错,BX与BP是两个基址寄存器,不可以同时出现在源操作数当中 MOV AL, ES:BP 对 MOV DL, SIDI错,SI与DI是两个变址寄存器,不可以同时出现在源操作数中 MOV AX, OFF

5、SET 0A20H错,OFFSET后面跟的应该是变量或标号的符号地址,再把符号地址的值作为操作数,8,(11)MOV AL, OFFSET TABLE错,TABLE的偏移地址是16位,目的与源长度不一致 (12)XCHG AL, 50H错,交换指令可以在寄存器之间、寄存器和存储器之间进行,不可以是立即数 (13)IN BL, 05H错, BL不能作为IN指令的目的操作数,只能用AL或AX (14)OUT AL, 0FFEH错,端口地址0FFEHFFH, 应用DX间接寻址, 同时源操作数和目标操作数的位置颠倒了,应改为OUT DX, AL。,9,8. 已知当前SS1050H,SP0100H,AX

6、4860H,BX1287H,试用示意图表示执行下列指令过程中,堆栈中的内容和堆栈指针SP是怎样变化的。 PUSH AX ( SP00FEH) PUSH BX ( SP00FCH) POP BX ( SP00FEH) POP AX ( SP0100H),10,9.下列指令完成什么功能? (1) ADD AL, DH (AL=AL+DH) (2) ADC BX, CX (BX=BX+CX+CF) (3) SUB AX,2710H (AX=AX-2710H) (4) DEC BX (BX=BX-1) (5) NEG CX (CX=-CX) (6) INC BL (BL=BL+1) (7) MUL B

7、X ( (DX,AX)AX*BX ) (8) DIV CL (AL=AX/CL的商,AH=AX/CL的余数),11,10.已知AX2508H,BX0F36H,CX0004H,DX1864H,求下列每条指令执行后的结果是什么?标志位CF等于什么? AND AH, CLAH=04H,CF=0; OR BL, 30HBL=36H,CF=0; NOT AXAX=DAF7H,CF无影响; XOR CX,0FFF0HCX=FFF4H,CF=0; TEST DH, 0FHTEST操作并不修改结果,CF=0; CMP CX, 00HCMP操作并不修改结果,CF0;,12, SHR DX, CLDX=0186H

8、,CF=0; SAR AL, 1AL=04H,CF=0; SHL BH, CLBH=F0H,CF=0; SAL AX, 1AX=4A10H,CF=0; (11) RCL BX, 1若程序执行之前CF=0,BX=1E6CH,CF=0;若程序执行之前CF=1,BX=1E6DH,CF=0。 (12) ROR DX, CLDX=4186H,CF=0。,13,11.假设数据段定义如下:DATA SEGMENTSTRING DB The Personal Computer &TVDATA ENDS试用字串操作等指令编程完成以下功能: 把该字符串传送到附加段中偏移量为GET_CHAR开始的内存单元中。 比较

9、该字符串是否与“The computer”相同,若相同则将AL寄存器的内容置1,否则置0。并要求将比较次数送到BL寄存器中。 检查字符串是否有“&”符,若有用空格符将其替换。 把字符串大写字母传送到附加段中以CAPS开始的单元,其余字符传到以CHART开始的单元。然后将数据段中存储上述字符串的单元清0。,14,11.解:DATA SEGMENTSTRING DB The personal computer & TVDATA ENDSEDATA SEGMENTGET_CHAR DB 26DUP(?)NEW_STR DB The computerEDATA ENDS(1) MOV SI, OFFS

10、ET STRINGMOV DI, OFFSET GET_CHARMOV CX, 001AHCLDREP MOVSB,15,(2) MOV SI, OFFSET STRINGMOV DI, OFFSET NEW_STRMOV CX, 001AHCLDREPZ CMPSB ;DS:SI-ES:DIJNE CLR_ALMOV AL, 1JMP SET_BLCLR_AL: MOV AL, 0SET_BL: MOV BL, 001AHSUB BL, CLHLT,16,(3) MOV DI, OFFSET STRINGMOV CX, 001AHMOV AL, 用空格替换&JMP NEXT,17,(4) M

11、OV SI, OFFSET STRING ;数据段,源串MOV DI, OFFSET CAPS ;附加段,大写字符MOV BX, OFFSET CHART ;附加段,其它字符MOV CX, 001AHCLDL1: LODSB ;ALDS:SIMOV SI-1, 00H ; 取出字符后该单元清零CMP AL, AJB OTHERCMP AL, ZJA OTHERSTOSB ; 存大写字符JMP L2OTHER: XCHG BX, DI ; 存其它字符STOSBXCHG BX, DIL2: LOOP L1HLT,18,13.设CS=1200H, IP=0100H, SS5000H, SP=0400

12、H, DS=2000H, SI=3000H, BX=0300H, (20300)=4800H, (20302H)=00FFH, TABLE=0500H, PROG_N标号的地址为1200:0278H,PROG_F标号的地址为3400:0ABCH。说明下列每条指令执行完后,程序将分别转移到何处执行?JMP PROG_NJMP BXJMP BXJMP FAR PROG_FJMP DWORD PTRBX如将上述指令中的操作码JMP改为CALL,则每条指令完成后,程序转向何处执行?并请画图说明堆栈中内容和堆栈指针如何变化。,19,13.(1)JMP PROG_N段内直接近转移,目的地址为1200H:0

13、278H(或12278H)(2)JMP BX段内寄存器间接转移,目的地址为1200H:0300H(或12300H)(3)JMP BX物理地址DS10H+BX=2000H10H+0300H=20300H(20300H)=4800H IP段内存储器间接转移,目的地址为1200H:4800H(或16800H)(4)JMP FAR PROG_F段间立即直接转移,目的地址为3400H:0ABCH(或34ABCH)(5)JMP DWORD PTRBX物理地址DS10H+BX=2000H10H+0300H=20300H(20300H)=4800HIP, (20302H)=00FFH CS段间存储器间接转移,

14、目的地址为00FFH:4800H(或057F0H),20,JMP改为CALL后,目的地址与JMP相同。 (1)CALL PROG_N 段内直接调用,3字节指令,0103H入栈,SP=03FEH (2)CALL BX 段内寄存器间接调用,2字节指令,0102H入栈,SP=03FEH (3)CALL BX 段内存储器间接调用,2字节指令,0102H入栈,SP=03FEH (4)CALL FAR PROG_F 段间直接调用,5字节指令,1200H和0105H入栈,SP=03FCH (5)CALL DWORD PTRBX 段间间接调用,2字节指令,1200H和0102H入栈,SP=03FCH,21,1

15、4.如在下列程序段的括号中分别填入以下指令: (1)LOOP NEXT(2)LOOPE NEXT(3)LOOPNE NEXT试说明在这三种情况下,程序段执行完后,AX, BX, CX, DX寄存器的内容分别是什么。START: MOV AX, 01HMOV BX, 02HMOV DX, 03HMOV CX, 04HNEXT: INC AXADD BX, AXSHR DX, 1( ),22,START: MOV AX, 01HMOV BX, 02HMOV DX, 03HMOV CX, 04HNEXT: INC AXADD BX, AXSHR DX, 1( )程序运行前 DX=00000011B,

16、则运行后:(1)AX=05H BX=10H CX=00H DX=00H(2)AX=02H BX=04H CX=03H DX=01H(CX 0且ZF=1时循环)(3)AX=03H BX=07H CX=02H DX=00H(CX0且ZF=0时循环),23,15.某班有7个同学的英语成绩低于80分,分数存在ARRAY数组中,试编程完成以下工作: (1)给每人加5分,结果存到NEW数组中。 (2)把总分存到SUM单元中。 (3)把平均分存到AVERAGE单元中。(附加),24,15.解: ARRAY DB NEW DB 7 DUP(?)SUM DW 0 AVERAGE DB 0 (1) MOV CX,

17、 07H MOV BX, 00HNEXT: MOV AL, ARRAYBXADD AL, 5DAAMOV NEWBX,ALINC BXLOOP NEXTHLT,25,(2) MOV CX, 06H MOV BX, 01HMOV AH, 00HMOV AL, ARRAYL1: ADD AL, ARRAYBXDAAADC AH, 00H ;将进位加到AH中INC BXLOOP L1MOV SUM, AXHLT,26,(3)MOV DX, SUM ; DX=0H(BCD码)MOV BL, 07HMOV AX, DX ; 取十位数,并移至低4位AND AL, 0F0HMOV CL, 04HROL AL

18、, CL ; AX=00HAAD ; ALAH10AL, AH00 DIV BL ;十位商在AL中,余数在AH中MOV AVERAGE+1, AL ;存平均成绩十位MOV AL, DL ;取个位和数AND AL, 0FHAAD ; ALAH10AL, AH00 DIV BL ;个位商在AL中,余数在AH中MOV AVERAGE, AL ;存平均成绩个位MOV AVERAGE+2, AH ; 存余数,27,18.若中断向量表中地址为0040H中存放240BH,0042H单元里存放的是D169H,试问:,(1)这些单元对应的中断类型是什么?答:0040H为类型16(或10H)的中断。(2)该中断服

19、务程序的起始地址是什么?答:D169H: 240BH,28,附加题1:设AX=4235H,BX=06FAH,CX=0143H,DX=3105H,CF=1。下列每条指令执行后的结果是什么?CF、ZF、OF等标志位的值各等于多少? MOV AX, BXAX=06FAH,CF,ZF,OF均无影响,CF=1。 ADD AL, DHAL=66H, CF=0,ZF=0,OF=0。 ADC BX, CXBX=083EH,CF=0,ZF=0,OF=0。 SUB AX, 2710HAX=1B25H,CF=0,ZF=0,OF=0。,29,DEC BXBX=06F9H,CF=1(无影响),ZF=0,OF=0。 NE

20、G CXCX=FEBDH,CF=1,ZF=0,OF=0。 INC BLBL=FBH, CF=1(无影响),ZF=0,OF=0。 MUL BXDX=01CDH,AX=E5C2H,CF=1,ZF不定,OF=1。 DIV CLAL=0FCH,AH=41H,标志位均无定义。,30,附加题2:已知变量X1和X2的定义如下:X1 DW 1024HDW 2476HX2 DW 3280HDW 9351H请按下列要求进行运算或操作后,将运算结果存到RESULT单元中,低位在前,高位在后。试分别写出指令序列。 将X1和X2两个字数据相加。MOV AX, X1ADD AX, X2MOV RESULT, AX,31,

21、将X1和X2两个双字数据相加。MOV AX, X1ADD AX, X2MOV RESULT, AXMOV AX, X1+2ADC AX, X2+2MOV RESULT+2, AX 将X1和X2两个字数据相减。MOV AX, X1SUB AX, X2MOV RESULT, AX 将X1和X2两个字数数据交换位置。MOV AX, X1XCHG AX, X2MOV X1, AX,32,(5)将X1和X2看作双字BCD数再相加MOV BX, OFFSET RESULTMOV SI, OFFSET X1MOV DI, OFFSET X2MOV CX, 04CLC L1: MOV AL, BSIADC A

22、L, BDIDAA ; 十进制调整MOV BX, AL ; 存结果INC BX ;修改地址指针INC SIINC DILOOP L1 ;未结束,继续MOV AL, 00HADC AL, 00HMOV BX, AL ; 存进位位CF,33,将X1当作BCD字数据,然后与6相乘。MOV BL, 06HMOV DX, X1MOV AL, DLAND AL, 0FH ; 取个位MUL BL ; 与X1的个位乘AAM ; AL/10=AH(进位)余数在ALMOV RESULT, AL ; 存积的个位MOV BH, AH ; 个位向十位的进位位暂存BHMOV AL, DL ; 取十位,并移到低4位AND

23、AL, 0F0HMOV CL, 04HROL AL, CL,34,MUL BL ;与X1的十位乘ADD AL, BH ;加个位向十位的进位AAM ;十位在AL,向百位进位在AHMOV RESULT1, AL ;存积的十位 MOV BH, AH ;向百位的进位暂存BH中MOV AL, DH ;取百位AND AL, 0FHMUL BL ;与X1的百位乘ADD AL, BH ;加十位向百位的进位AAM ;百位在AL,向千位进位在AHMOV RESULT+2, AL ;存积的百位MOV BH, AH ;向千位的进位暂存BH中MOV AL, DH ;取千位,并移到低4位AND AL, 0F0HMOV C

24、L, 04HROL AL, CL,35,MUL BL ; 与X1的千位乘 ADD AL,BH ; 加百位向千位的进位 AAM ; 千位在AL中,向万位的进位在AH MOV RESULT+3,AL ; 存积的千位 MOV RESULT+4,AH ; 存积的万位,36,将X2当作BCD字数据,然后除以6。MOV BL, 06HMOV DX, X2MOV AL, DH ; 取千位数,并移至低4位AND AL, 0F0HMOV CL, 04HROL AL, CLMOV AH, 00HDIV BL ;千位商在AL中,余数在AH中MOV RESULT+3, AL ;存千位商,37,MOV AL, DH ;

25、取百位数AND AL, 0FHAAD ;ALAH10AL, AH00 DIV BL ;百位商在AL中,余数在AH中MOV RESULT+2, AL ;存百位商 MOV AL, DL ;取十位数,并移至低4位AND AL, 0F0HMOV CL, 04HROL AL, CLAAD ;ALAH10AL, AH00 DIV BL ;十位商在AL中,余数在AH中 MOV RESULT+1, AL ;存十位商,38,MOV AL, DL ;取个位数AND AL, 0FHAAD ; ALAH10AL, AH00 DIV BL ; 个位商在AL中,余数在AH中MOV RESULT, AL ;存个位商MOV

26、RESULT+4, AH ;存余数,39,附加题3:在数据段中有两个相邻的字节数据2BH和F5H,编程实现下列操作,并说明各标志位的状态。 把它们当成带符号数相加后,结果存到内存单元中。 把它们当成无符号数相减(2BHF5H)后,结果存到内存单元中。 把它们当成无符号数相加后,结果存到内存单元中。 把它们当成无符号数相乘后,结果存到内存单元中。 把它们当成带符号数相除(2BH/F5H)后,结果存到内存单元中。,40,DATA SEGMENTBUF DB 2BH, 0F5HRESULT DB 2DUP(?)DATA ENDS 解: (1) MOV AL, BUF ;带符号ADD AL, BUF+

27、1MOV RESULT, AL ;4311=32结果:AL=20H,CF=1,PF=0,AF=1,ZF=0,SF=0,OF=0 (2) MOV AL, BUF ;无符号SUB AL, BUF+1MOV RESULT, AL ;2564324554结果:AL36H,CF=1,PF=1,AF=0,ZF=0,SF=0,OF=0,41,(3) MOV AL, BUF ;无符号ADD AL, BUF+1MOV RESULT, AL ;4324525632结果:AL=20H,CF=1,PF=0,AF=1,ZF=0,SF=0,OF=0 (4) MOV AL, BUF ;无符号MUL BUF+1MOV RESULT, ALMOV RESULT, AH ;43245=10535= 2927H结果:AX=2927H,CF=1,OF=1,PF,AF,ZF,SF不定 (5) MOV AL, BUF ;带符号CBWIDIV BUF+1MOV RESULT, AL ;存商MOV RESULT1, AH ;存余数结果: 所有标志均无定义。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报