单击此处编辑母版文本样式,46,微机原理及应用,重修,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,可编辑ppt,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,可编辑ppt,*,综合练习题,一、填空题,二、分析简答题,三、程序分析题,四、编程题,五、存储器扩展题,六、输入输出接口题,综合练习题一、填空题,一、填空题,在计算机中:,1Byte=,8,bit,,,1Word =,16,bit,。,对于十六进制数码,64.8H,,转换为十进制数时为,100.5,;该数码看作,8421BCD,码时表示数据为,64.8,。,对于十进制数,18.5,,用十六进制数表示时为,12.8,H,;用压缩,8421BCD,码表示时为,18.5H,或,(,00011000.0101,),。,一、填空题在计算机中:1Byte= 8 bit,1Wor,设机器字长为8位,最高位是符号位。则十进制数127所对应的原码为,11111111B,,补码为,10000001B,。,8086CPU内部结构可分为,EU,和,BIU,两部分。,8086CPU 可以访问,8,位和,16,位的寄存器。,8086CPU是,16,位的CPU。,设,SP,为,2000H,,则执行,PUSH AX,后,,SP=,1FFE,H,。,设机器字长为8位,最高位是符号位。则十进制数127所对应的,逻辑地址是由,段基址,和,偏移地址,组成。其中,段寄存器中存放的是,段基址,。,将逻辑地址转换为物理地址的公式是,段基址16偏移地址。,设有逻辑地址1234H:1234H,试写出其对应的物理地址,13574,H 。,一个含有16个字节数据的变量,它的逻辑地址为1000H:0100H,那么该变量的最后一个字节数据的物理地址是,1010F,H。,逻辑地址是由 段基址 和 偏移地址 组成。其中,段寄存,8086CPU对外的数据线是,16,条,地址线是,20,条,它的寻址能力为,1M,字节。,数据线和地址线是以,分时复用,方式轮流使用的。,若有如下定义:,ORG 0100H,TAB DW 9876H,当执行:MOV AX,TAB后,(AX)=,9876H,;,而执行:LEA AX,TAB后,(AX)=,0100H,。,8086CPU对外的数据线是 16 条,地址线是,若定义 A DB,abcd,,则(A+2)单元存放的字节数据是,c,或,63H,。,8086 CPU在I/O单独编址时,对I/O编址最多使用,16,条地址线,若要从地址为80H的端口读入字节数据,则应该使用指令,IN AL,80H,。,在,8086,系统(XT机)中使用的可编程中断控制器型号是,8259A,,该芯片最少占用,2,个端口地址。,若定义 A DB abcd,则(A+2)单元存放的字节,可编程定时/计数器8253含有,3,个,16,位的定时/计数器。每个定时/计数器可以通过编程方式来设定的工作方式有,6,种。,若用4K1的存储器芯片组成12K字节的内存容量,则共需,24,个这样的芯片。,一般情况下,容量为256KB的存储器具有,8,条数据线,,18,条地址线。,可编程定时/计数器8253含有 3 个 16 位,在微型计算机系统中,可采用的输入输出方式主要有,程序控制,、,中断方式,、,DMA,三种类型。,可编程接口芯片8255A含有,3,个,8,位的I/O口。A口工作方式有,3,种,B口工作方式有,2,种。,8086 CPU上电复位后,执行第一条指令的物理地址是,FFFF0,H。,在微型计算机系统中,可采用的输入输出方式主要有 程序控制、,8086/8088 CPU 的中断系统能处理,256,种不同类型的中断。,在8086系统中使用8259A芯片,最多能管理,64,级中断优先级。,计算机对I/O端口的编址方法有,存储器映象寻址(也称统一编址),、,I/O单独编址,两种。,内存按存储器性质分类通常分为RAM和,ROM,两类。,8086/8088 CPU 的中断系统能处理 256,二、分析简答题,1,、写出,-23,的原码、反码、补码,并将补码转换成十六进制数,(,设字长为,8,位,),。,答:,X=-23=-10111B,X,原码,:10010111B,X,反码,:11101000B,X,补码,:11101001B = E9H,二、分析简答题1、写出-23的原码、反码、补码,并将补码转换,2、已知逻辑地址3010H:1234H,写出段地址、偏移地址、物理地址。,答:,段地址为:3010H; 偏移地址为:1234H,物理地址:3010H*10H+1234H=31334H,3、简述BIU、EU单元作用。,答:,BIU:地址形成、取指令、指令排队、读/写操作数、总线控制,EU:指令译码、指令执行,2、已知逻辑地址3010H:1234H,写出段地址、偏移地址,4、8086 CPU中四个段寄存器的名称是什么,分别用什么符号表示?,答:,代码段:CS,数据段:DS,堆栈段:SS,扩展段:ES,4、8086 CPU中四个段寄存器的名称是什么,分别用什么符,5、列举至少5种程序状态字中的标志位,并简要说明其功能,答:,ZF:全零标志,CF:进位标志,SF:符号位,AF:辅助进位,PF:奇偶校验位,OF:溢出标志,5、列举至少5种程序状态字中的标志位,并简要说明其功能,6、设字长为8位,用二进制计算15+20的结果,并说明对状态标志C、A、S、Z的影响。,答:,00001111,+ 00010100,00100011,CF=0 AF=1 SF=0 ZF=0,6、设字长为8位,用二进制计算15+20的结果,并说明对状态,7、8086CPU对1M存储空间是如何组织的?,答:,8086 CPU对存储器是采用分段方式管理的(段地址:偏移量),分为奇地址库和偶地址库。,8、8086CPU系统中存储器为什么分奇地址库和偶地址库。,答:,为保证和以前的CPU兼容,保证8086既能进行字节操作,有可以进行字操作。,7、8086CPU对1M存储空间是如何组织的?,9、8086对存储器的管理为什么采用分段的办法?20位的物理地址是如何形成的?,答:,8086的数据线和内部的寄存器都是16位的,而其地址线是20位的,无法直接进行管理;为扩大寻址范围,采用分段的管理方式,把真正的物理地址用段地址和偏移量表示,每一部分都不超过64K,可保存在内部寄存器中。,当CPU访问内存时,在地址加法器中将段寄存器的内容(段基址)自动左移4位(二进制),再16位偏移地址相加,形成20位的物理地址。,9、8086对存储器的管理为什么采用分段的办法?20位的物理,10、设SS=1050H,SP=0008H,AX=1234H,当执行指令:PUSH AX后,寄存器SS、SP、AX内容分别是什么?画图说明1234H在内存中的存放情况。,答:,SS=1050H,SP=0006H,AX=1234H,(10506H)=34H,(10507H)=12H,10、设SS=1050H,SP=0008H,AX=1234H,11、分别指出下列指令中的,源操作数,的寻址方式。,(1)MOV CX,300H,(2)MOV BPDI,300H,(3)MOV AX,BX,(4)MOV AX,BP+DI,(5)MOV AX,10BXDI,(6)MOV AX,10SI,(7)MOV AX,DI,(8)JMP BX,(9)IN AL,23H,(10)IN AL,DX,(1),直接寻址,(2),立即寻址,(3),寄存器寻址,(4),基址加变址,(5),相对基址加变址寻址,(6),寄存器相对寻址,(7),寄存器间接寻址,(8),段内间接寻址,(9),直接端口寻址,(10),间接端口寻址,11、分别指出下列指令中的源操作数的寻址方式。 (1)直接寻,12、指出下列指令的错误,(1)MOV AH,BX,答,:,源、目的操作数长度不匹配,(2)ADD 15H,BX,答,:,立即数不能做目的操作数,(3)MOV CS,AX,答:,CS不能做目的操作数,(4)MOV AX,SIDI,答:,SI、DI不能同时出现在 中 (或源操作数寻址方式有误),(5)MOV BYTE PTRBX,1000,答:,源、目的操作数长度不匹配,12、指出下列指令的错误,(6)MOV SI,BX,答:,源、目的操作数不能均为存储器操作数,(7)MOV DS,0200H,答:,立即数不能直接送至段寄存器,(8)IN BL,05H,答:,IN指令中目的操作数不能用BL(只能用AL或AX),(9)MOV AX,IP,答:,IP不能作操作数,(10)MOV SI,DX,答:,DX不能间接寻址,可改为 MOV SI,BX,(11)PUSH AL,答:,PUSH指令的操作数必须为16位(即:按字操作),(6)MOV SI,BX,13,、,试写一指令序列,完成将AX寄存器的最低4位置1,最高3位清零,,D7D9位反相,其它位不变。,答:,OR AX,000FH,AND AX,1FFFH,XOR AX,0380H,13、试写一指令序列,完成将AX寄存器的最低4位置1,最高3,14、用单条指令或程序片段,实现下述功能。,(1)将AX高8位取反,低四位置1,其余位不变。,(2)将AL的高四位与低四位互换。,(3)将BX、AX内容互换。,答:,(1)XOR AX,0FF00H OR AX,000FH,(2)MOV CL,4 ROR AL,CL(,或,ROL AL,CL),(3)XCHG AX,BX,14、用单条指令或程序片段,实现下述功能。,15、写出至少3种指令,使AX寄存器清零,答:,MOV AX,00,SUB AX,AX,XOR AX,AX,AND AX,00H,15、写出至少3种指令,使AX寄存器清零,16、设计I/O接口电路时一般遵循什么原则,为什么?,答:,遵循的基本原则:,输出要锁存,输入要缓冲。,原因:CPU运行速度较快,外设速度相对较慢,通过锁存器保持CPU的输出信号;CPU的数据线是公用的,任何外设都不能单独占用数据线,通过缓冲器可以将外设和数据线在不需要的时候隔离。,16、设计I/O接口电路时一般遵循什么原则,为什么?,17、计算机使用中断有什么好处?,答:,(1)解决快速CPU与慢速外设之间的矛盾,使CPU可以与外设同时工作,甚至可以与几个外设同时工作。(2)计算机实现对控制对象的实时处理。(3)计算机可以对故障自行处理。,18、8086可屏蔽中断请求输入信号线是什么?“可屏蔽”的涵义是什么?,答:,可屏蔽中断请求输入线为INTR; “可屏蔽”是指该中断请求可经软件清除标志寄存器中IF位而被禁止。,17、计算机使用中断有什么好处?,19、简述CPU响应外部可屏蔽中断的前提条件是什么?,答:,有中断源申请、 无内部中断、中断系统是开放的,20、什么是中断向量,中断向量表在内存中的地址范围是什么?,答:,中断向量是指中断处理程序的入口地址;,中断向量表的地址范围:00000H003FFH,19、简述CPU响应外部可屏蔽中断的前提条件是什么?,21、什么叫中断向量表,在8086系统中,中断向量表存放在内存的什么位置,容量有多大?,答:,把不同中断类型号对应的中断服务程序入口地址排列起来,形成的表称为中断向量表;存放在存储器最开始的一段空间内;容量为1KB。,21、什么叫中断向量表,在8086系统中,中断向量表存放在内,22、8086CPU主要能处理哪些类型的中断,这些中断的优先级是如何排列的。,答:,内部中断和外部中断,内部中断包括内部硬中断和内部软中断,外部中断包括可屏蔽和不可屏蔽中断。,中断优先级为:,内部中断不可屏蔽中断可屏蔽中断单步中断,22、8086CPU主要能处理哪些类型的中断,这些中断的优先,23、编写中断类型号为10的中断向量设置程序(假设中断服务程序名为INT_10),方法一:,MOV AX,0,MOV ES,AX,MOV DI,40,MOV AX,OFFSET INT_10,CLD,STOSW,MOV AX,SEG INT_10,STOSW,方法二,:,MOV AX,0,MOV DS,AX,MOV BX,40,MOV AX,OFFSET INT_10,MOV BX,AX,MOV AX,SEG INT_10,MOV BX+2,AX,23、编写中断类型号为10的中断向量设置程序(假设中断服务程,三、程序分析题,1,、,MOV AL,85H,MOV X1,0,MOV X2,0,MOV CX,8,L0,:,SHL AL,1,JC L1,INC X1,JMP L2,L1,:,INC X2,L2,:,LOOP L0,程序中,X1,和,X2,是字节变量,(1),分析程序实现的功能。,(2),程序执行后,,X1,和,X2,的值分别是多少?,答:,(1),统计,AL,中,0,和,1,的个数,分别放在,X1,和,X2,中。,(2) X1=5,;,X2=3,三、程序分析题1、MOV AL,85H程序中X1和X2是字节,2,、,IN AL,5FH,;,TEST AL,80H,;,JZ L1,;,MOV AH,0,JMP STOP,L1,:,MOV AH,0FH,STOP,:,HALT,从地址为,5F,的端口读入,1,个字节送,AL,AL,与,80H,相与,但不回送结果,,只影响标志位的值,若状态标志,Z,为,1,,跳转至,L1,运行,(1),在横线处写明语句实现的功能。,(2),分析程序实现的功能。,功能:,若从地址为,5F,的端口外围设备读入的字节最高位为,0,则,AH=0FH,,否则,AH=0,2、IN AL,5FH ;TEST AL,80H ;从地,3,、,MOV AX,0,MOV BX,1,MOV CX,100,L1,:,ADD AX,BX,INC BX,DEC CX,JNZ L1,(1),分析程序实现的功能。,(2),程序执行后,,AX,、,BX,、,CX,的值分别是多少?,答:,(1),计算,1+2+3+100,的值,最终保存在,AX,中 ;,(2) AX=5050,BX=101,CX=0,3、MOV AX,0(1) 分析程序实现的功能。,4,、,STR DB COMPUTER,MOV CX,8,MOV AL,1,LEA BX,STR,;,(a),L1:CMP BYTE PTR BX,U,;,(b),JZ L2,INC BX,INC AL,LOOP L1,L2: HALT,4、STR DB COMPUTER,(1),在横线处写明语句实现的功能。,答:,(a),将,STR,变量的首地址送,BX,(b),比较,BX,间接寻址的字节是否等于,U,(2),分析程序实现的功能,并说明执行完后,,AL,寄存器的值。,答:,计算字母,U,在字符串中出现的位置,,AL=5,(1)在横线处写明语句实现的功能。,5、分析填空,MOV AX,00H ;,PUSH AX;,POP BX;,MOV AX,3F5FH ;,MOV CX,4,ROR AL,CL;,AND AL,0FH;,答:,执行后,AX=,00H,执行后,AX=,00H,执行后,BX=,00H,执行后,AL=,5FH,执行后,AL=,0F5H,执行后,AL=,05H,5、分析填空答:,6、若STR是字符串的首地址,指出下列程序的功能,并将语句加上注解。,LEA BX,STR,;,取STR 的偏移量放到BX中,MOV CX,20,;,_设置循环次数_,LP:CMP BX,,*,JNZ NEXT,;,BX所指单元内容不为,*,,则转移至NEXT,MOV BX,,$,;,将BX所指单元用,$,替代,NEXT:INC BX,;,BX加1,指向下一个单元,LOOP LP,;,CX-1不等于0则转移至LP处,继续循环,HLT,程序的功能:将STR开始的前20个字符中的,*,用,$,替代,6、若STR是字符串的首地址,指出下列程序的功能,并将语句加,四、编程题,1,、,从,BLOCK,开始有一个字节型数组,共有,15,个元素,编写,完整,汇编源程序,计算这个数组中,奇数,的个数,并将结果存入内存,SUM,单元。,2,、从,BUF,开始有一个字节型数组,共有,100,个元素,编写,完整,汇编源程序,计算这个数组中,负数,的个数,并将结果存入内存,COUNT,单元。,3,、从,BUF,开始,存放,10,个带符号的字节数据,,编写,完整,汇编源程序,,找出该数据区中的,最大数,,并将其存放至内存单元,MAX,中。,(,答案略,),四、编程题1、 从BLOCK开始有一个字节型数组,共有15个,微机原理与接口技术复习重点课件,1.右图为8088 CPU和某存储器电路连接图,请回答以下问题:,(1) 将CPU的信号线与存储器相连。,(2) 存储器是什么类型(RAM、ROM)?总容量为多少?各存储芯片的地址范围分别是多少?,五、存储器扩展题,1.右图为8088 CPU和某存储器电路连接图,请回答以下问,答:,1)CPU与存储器的连接如右图所示。,2,) 存储器类型为,:,RAM,;,总容量为,4K8,;,地址范围,:,0# 2000H-27FFH,1# 2800H-2FFFH,答:1)CPU与存储器的连接如右图所示。 2) 存储器类,1、INTEL 8255A接口芯片,(1) 现给出INTEL 8255A 的应用电路如下,系统分配给8255的地址为60H63H。试分析该电路中8255的A、B口分别是作为输入口,还是输出口?,(2) 现给出8255A 工作方式控制字格式如下,请编写程序片段对8255进行初始化,并读取电路中的开关量,用LED发光二极管显示其对应的开关状态(注:,LED显示器“亮”,表示开关“断开”,)。,六、输入输出接口题,1、INTEL 8255A接口芯片 六、输入输出接口题,微机原理与接口技术复习重点课件,解答:,(1)A口作为,输入口,,B口作为,输出口,(2,)初始化:,A,口作为输入口,,B,口作为输出口,,均工作于方式,0,,则控制字为:,90H,(不唯一),参考程序片段:,MOV AL,,,90H,OUT 63H,,,AL,IN AL,,,60H,OUT 61H,,,AL,解答:,2、根据下面的接口电路图,回答下列问题:,2、根据下面的接口电路图,回答下列问题:,(,1,),这是一个什么接口电路图?,答,:查询式输入,接口电路图,(,2,),写出下列芯片的名称或功能(锁存、缓冲):,U1,:,锁存器,U2,:,三态缓冲器(或三态门),(,3,) 电路图中的,1,、,2,、,3,、,4,、应接到何处?写出符号。,答,:,1.,2.M /,3.,地址线,A,15,A,0,4.,The end!,(1)这是一个什么接口电路图?The end!,温馨提示:,考试时请带学生证和重修证!,谢 谢 !,温馨提示:谢 谢 !,指令系统程序设计举例,例1:从存储器中取数的基本方法,执行下列指令后, AX寄存器中的内容是什么?,TABLEDW10,20,30,40,50,ENTRY DW3,.,MOV BX,OFFSET TABLE ;取数据串偏移地址,ADD BX,ENTRY ;BX=BX+3,MOV AX,BX ;物理地址=DS,16+(BX),答案: (AX)=40,0AH,14H,1EH,28H,32H,03H,DS:TABLE,DS:ENTRY,此例中要注意:,1)TABLE 和ENTRY的标号意义,这里为数据串的偏移地址的首地址。,2)从存储器中取数据必须要知道数据在那个段和它的偏移地址。,3)得到偏移地址有两条指令,4)如果数据在ES或SS段时,指令中段前缀的用法,47,可编辑ppt,指令系统程序设计举例 例1:从存储器中取数的基本方法0AH1,如果数据串定义在ES段中,TABLEDW10,20,30,40,50,ENTRY DW3,.,MOV BX,OFFSET TABLE ;取数据串偏移地址,ADD BX,ES,ENTRY ;BX=BX+3,MOV AX,BX ;物理地址=ES,16+(BX),答案: (AX)=40,0AH,14H,1EH,28H,32H,03H,ES:,TABLE,ES:,ENTRY,此例中要注意:,1)TABLE 和ENTRY的标号在程序中只能出现一次,在段定义中已经指明在ES段中。,48,可编辑ppt,如果数据串定义在ES段中0AH14H1EH28H32H03,例2:在使用中容易出错的指令用法,指出下列指令的错误:,MOV AH,BX ; 源、目的字长不一致,(2)MOV SI,BX ;源、目的不能同时为存贮器寻址方式,(3)MOV AX,SIDI ;基址变址方式不能有 SI和DI的组合,(4)MOV AX,BXBP ;基址变址方式不能有 BX和BP的组合,(5)MOVBX,ES:AX ;AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式,(6)MOV BYTE PTRBX,1000 ;1000超出一个字节的表数范围,(7)MOV AX,OFFSET SI ; OFFSET只用于标号,(8)MOV CS,AX;CS不能作为目的寄存器,(9)MOV DS,BP ;段地址不能直接送入数据段寄存器,49,可编辑ppt,例2:在使用中容易出错的指令用法49可编辑ppt,例3: 推断指令的执行结果,DATA SEGMENT,TABADW1234H,DATAENDS,.,MOV BX, TABA,LEABX, TABA,请写出上述两条指令执行后, BX寄存器中的内容。,答案:,MOVBX,TABA ; 执行后(BX)=1234H ,内存中的数据,LEABX,TABA ; 执行后(BX)=OFFSET TABA,偏移地址,34H,12H,XX,XX,XX,XX,DS:TABA,50,可编辑ppt,例3: 推断指令的执行结果 34H12HXXXXXXXXDS,例4 多字节加法的程序设计,变量DATAX和DATAY定义如下:,DATAX DW 0148H,DW 2316H,DATAY DW 0237H,DW 4052H,按下述要求写出指令序列: DATAX和DATAY中的两个字数据相加, 和存放在DATAY和DATAY+2中。,实现的运算为:,2316,0148,H+,4052,0237,H=?,MOVAX, DATAX ;取第一个要加数的低字,ADDAX, DATAY ;与第二个数低字相加,结果在AX中,MOVBX, DATAX+2 ;取第一个数要加的数的高字,ADC,BX, DATAY+2 ;与第二个数高字相加,结果在BX中,MOVDATAY, AX,MOVDATAY+2, BX ;保存和,注意地址为2个字节,在编程时要考虑到低字相加后产生的进位,51,可编辑ppt,例4 多字节加法的程序设计51可编辑ppt,例5:乘法指令应用(无符号),两个16变量DATAY和DATAX定义如下:,DATAY DW 0148H ;A,DW 2316H ;B,DATAX DW 0237H ;C,DW 4052H ;D,RESULT DW 12DUP(0),按下述要求写出指令序列:DATAY和DATAX,两个字相乘,(用MUL)。,52,可编辑ppt,例5:乘法指令应用(无符号)52可编辑ppt,A B C D E F G H,H G F E,D C B A,N,N N N N,N N N N,M M,M M M M,M M M,A A A,A A A A,A A,B B B B,B B B B,B,C,C C C C,C C C C,D D,D D D D,D D D,E E E,E E E E,E E,F F F F,F F F F,F,X X X X X X X X X X X X X X X X X,53,可编辑ppt,A B C D,E F G H, H G F E,D C B A,N,N N N N,M M M M M,A A A A A,B B B B,B,DX(0) AX(0),A B C D,E F G H, H G F E,D C B A,C C C C C,D D D D D,E E E E E,F F F F F,DX(1) AX(1),54,可编辑ppt,A B C D,E F G H,H G F E,D C B A,N,N N N N,M M M M M,A A A A A,B B B B,B,DX(2) AX(2),A B C D,E F G H,H G F E,D C B A,C C C C C,D D D D D,E E E E E,F F F F F,DX(3) AX(3),55,可编辑ppt,DX(0) AX(0),DX(1) AX(1),DX(2) +AX(2),DX(3) AX(3) C1 字1 字0,+ C2 + C1,字3 C2 字2,字相乘后位相加的要求,56,可编辑ppt,字相乘后位相加的要求56可编辑ppt,MOVAX,WORD PTR DATAX ;取乘数第一个字,MOVBX,WORD PTR DATAY ;取被乘数第一个字,MULBX;(AC),MOVRESULT,AX;结果低字 AX(0),MOVRESULT+2,DX ;结果高字 DX(0),MOVAX,WORD PTR DATAX ;取乘数第一个字,MOVAX,WORD PTR DATAY+2 ;取被乘数第二个字,MULBX ;(AD),MOVRESULT+4,AX;结果低字 AX(1),MOVRESULT+6,DX ;结果高字 DX(1),57,可编辑ppt,MOVAX,WORD PTR DATAX ;取乘数第一个字,MOVAX,WORD PTR DATAX+2 ;取乘数第二个字,MOVBX,WORD PTR DATAY ;取被乘数第一个字,MULBX,;(BC),MOVRESULT+8,AX;结果低字 AX(2),MOVRESULT+10,DX ;结果高字 DX(2),MOVAX,WORD PTR DATAX+2 ;取乘数第二个字,MOVBX,WORD PTR DATAY+2 ;取被乘数第一个字,MULBX,;(BD),MOVRESULT+12,AX;结果低字 AX(3),MOVRESULT+14,DX ;结果高字 DX(3),58,可编辑ppt,MOVAX,WORD PTR DATAX+2 ;取乘数第,MOV AX,RESULT+2,MOV BX,RESULT+4,MOV DX,RESULT+8,ADDAX,BX,ADCAX,DX ;DX(0)+AX(1)+AX(2),MOV RESULT+2, AX,MOV AX,RESULT+6,MOV BX,RESULT+10,MOV DX,RESULT+12,ADCAX,BX,ADCAX,DX,;DX(1)+DX(2)+AX(3),MOV RESULT+4, AX,MOVAX,RESULT14,ADCAX,0000H ;,DX(3)+C,MOVRESULT6, AX,59,可编辑ppt,MOV AX,RESULT+259可编辑ppt,例6:移位指令应用,试分析下面的程序段完成什么操作?,MOVCL,04,SHLDX,CL ;,DX左移4位。左移次数CL中的数,MOVBL,AH,SHLAX,CL ;,AX左移4位,SHRBL,CL ;,BL右移4位,答案:,将DX、AX中的字左移4位,,BL右移4位,60,可编辑ppt,例6:移位指令应用60可编辑ppt,例7:变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。非压缩BCD码格式:0000XXXXH,MOVAX, 0 ;(MOV AH,00H)AX高8位清0,MOVAL, N1 ;取个位数,SUBAL, N2 ;个位减,AAS ;,非压缩的BCD数的减法结果进行调整,MOVDL, AL ;将正确结果保存在DL中,MOVAL, N1+1 ;取十位数,SBCAL, N2+2 ;十位减,,考虑个位有借位,AAS ;,非压缩的BCD数的减法结果进行调整,MOVDH, AL ;将正确结果保存在DH中,61,可编辑ppt,例7:变量N1和N2均为2字节的非压缩BCD数码,请写出计算,例8:假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H,(25060)=00B0H,(SP)=0FFFEH, (CF)=1, (DF)=1,请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。,SBBAX,BX ;2060H-3000H,(AX)=,F,05FH, (SF)=1, (ZF)=0, (OF)=0, (CF)=1,62,可编辑ppt,例8:假设(CS)=3000H, (DS)=4000H,假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。,(2) CMPAX,WORD,PTRSI+0FA0H;2060H-A006H,目的操作数的地址:DS,16+,SI+0FA0H,=40000H+2060+0FA0=43000H,执行此指令后AX中的内容不变!只影响标志位!,63,可编辑ppt,假设(CS)=3000H, (DS)=4000H, (ES,2060H-A006H,0010 0000 0110 0000,-1010 0000 0000 0110,0010 0000 0110 0000,+0101 1111 1111 1010,1000 0000 0101 1010,结果:(SF)=1, (ZF)=0, (OF)=1, (CF)=1,OF=1 两数符号相反(正数-负数、或负数-正数),而结果符号与减数相同。,OF=0 同符号数相减时或不同符号数相减,而结果符号与减数不相同。,64,可编辑ppt,2060H-A006H64可编辑ppt,假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。,(3) MULBYTE PTRBX ;字或字节由源决定,(AX)=0260H, (OF)=1, (CF)=1,65,可编辑ppt,假设(CS)=3000H, (DS)=4000H, (ES,MULBYTE PTRBX,目的操作数的地址:DS16+(BX),=40000H+3000=43000H,(43000H)=A006H,此操作为:60H06H=0240H,(AX)=0240H, (OF)=1, (CF)=1,乘法指令运算结果影响状态标志,但对CF、OF有特殊的定义。,当乘积的高半部分为0(AH=0或DX(高位)=0)时,CF=0、OF=0,表示高半部分无有效数,否则CF=1、OF=1,用于指出字节运算结果是8位或16位,字运算结果是16位或32位。(不存在有进位的可能),66,可编辑ppt,MULBYTE PTRBX66可编辑ppt,假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。,(4) DIVBH;AX/BL(2060H,30H,),(AX)=2060H,67,可编辑ppt,假设(CS)=3000H, (DS)=4000H, (ES,(4) DIVBH;AX/BL(2060H,30H,),(AX)=2060H AL=商,AH=余数,2060H=40962+96=8288,8288,48=172 余数=32,除法不影响标志位,68,可编辑ppt,(4) DIVBH;AX/BL(2060H30H)68可,假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。,(5) SARAX,CL ;,算术右移5次,(AX)=0103H, (CF)=0,2060H=0010 0000 011,0,0000,B,0000 0,001 0000 0011 B,00000B,69,可编辑ppt,假设(CS)=3000H, (DS)=4000H, (ES,假设 (AX)=2060H, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。,(6) XORAX,0FFE7H,0010 0000 011,0,0000B,1111 1111 1110 0111,B,1101 1111 1000 0111B,(AX)=0DF87H, (CF)=0, (OF)=0, (SF)=1, (ZF)=0,相当于对AX的内容求反,70,可编辑ppt,假设 (AX)=2060H, 请写出下列各条指令单独执行完,假设 (DS)=4000H, (ES)=2000H, (AX)=2060H, (BX)=3000H, (SI)=2060H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。,(7) XCHGAX,ES:BX+SI,目的操作数的地址:ES16+(BX+SI),=20000H+3000+2060=25060H,(25060H)=00B0H,(AX)=00B0H, (25060)=2060H, 不影响标志位,71,可编辑ppt,假设 (DS)=4000H, (ES)=2000H, (,假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1,(DI)=2,(BP)=256,字变量ARRAY偏移地址为0050H,20250H)=1234H,(40100H)=00A0H,(40102H)=2200H。填空回答下列问题。,(1)MOVAX,,BP,DI;源操作数物理地址=,H,指令执行后(AX)=,H,(2)POPAX;源操作数物理地址=,H,指令执行后(AX)=,H,(3)PUSHES:BX;源操作数有效地址=,H,(4)LEADI,ARRAY;源字段的寻址方式是,指令执行后(DI)=,H,(5)JMP BX;指令执行后(IP)=,H,(6)ADD AL,BYTE PTR ARRAYBX ;源字段的寻址方式是,?,指令执行后(AL)=,H,72,可编辑ppt,假设(DS)=2000H,(ES)=3000H,(SS)=4,(1)源操作数物理地址=,40102,H,指令执行后(AX)=,2200,H,(2)源操作数物理地址=,40100,H,指令执行后(AX)=,00A0,H,(3)源操作数有效地址=,200H,H,(4)源字段的寻址方式是,直接寻址方式,指令执行后(DI)=,0050,H,(5)指令执行后(IP)=,200,H,(6)源字段的寻址方式是,寄存器相对寻址方式,指令执行后(AL)=,34,H,73,可编辑ppt,(1)源操作数物理地址= 40102 H73可编辑ppt,此课件下载可自行编辑修改,此课件供参考!,部分内容来源于网络,如有侵权请与我联系删除!感谢你的观看!,此课件下载可自行编辑修改,此课件供参考!,