理学指令系统.pptx
指令的基本概念n指令:使计算机完成某种操作的命令例1.MOV AX,5000例2.MOV AX,DATA1例3.MOV AX,DS:0020H例4.ADD AX,5000例5.NOT DX例6.IN AL,40H OUT 58H,AX第1页/共25页指令系统指令系统指该计算机能够执行的全部指令的集合指该计算机能够执行的全部指令的集合每种计算机都有它支持的指令集合每种计算机都有它支持的指令集合 80868086指令系统是指令系统是X86X86系列系列CPUCPU的基础的基础第2页/共25页指令指令的组成的组成指令由指令由操作码操作码和和操作数操作数两部分组成两部分组成操作码说明计算机要执行的操作,不可缺少操作码说明计算机要执行的操作,不可缺少操作数是指令中的操作对象操作数是指令中的操作对象操作码操作码操作数1 操作数2指令中的操作数的来源:要么是某个具体数值要么是某个寄存器要么是内存中某个存储单元第3页/共25页指令指令的寻址方式的寻址方式寻址:寻找操作数的过程。尤其是对于操作数来源于存储器的情况,最常用,也最复杂。操作数采取哪一种寻址方式,会影响机器运行的速度和效率 如何寻址一个操作数对程序设计很重要如何寻址一个操作数对程序设计很重要第4页/共25页与与数据有关的寻址方式数据有关的寻址方式一、立即寻址一、立即寻址二、寄存器寻址二、寄存器寻址三、存储器寻址三、存储器寻址1.直接寻址直接寻址直接寻址直接寻址2.寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址3.寄存器相对寻址寄存器相对寻址寄存器相对寻址寄存器相对寻址4.基址变址寻址基址变址寻址基址变址寻址基址变址寻址5.相对基址变址寻址相对基址变址寻址相对基址变址寻址相对基址变址寻址第5页/共25页一、立即寻址一、立即寻址指令中的操作数直接就是具体的数,这种操作数被称为立即数MOV AL,0EH 意思是意思是AL0EH ;指令执;指令执行完后结果就是行完后结果就是(AL)=00001110ADD DX,156 意思是意思是(DX)(DX)+156立即数寻址方式常用来给寄存器赋值第6页/共25页二、寄存器寻址二、寄存器寻址所谓寄存器寻址,即操作数就在寄存器中例如:MOV BX,AX意思是(BX)(AX)假设指令执行之前(AX)=1234H,(BX)=5678H那么指令执行之后(AX)=1234H,(BX)=1234H前2种寻址方式简洁高效,简单易懂第7页/共25页三、存储器寻址三、存储器寻址1.直接寻址直接寻址2.寄存器间接寻址寄存器间接寻址3.寄存器相对寻址寄存器相对寻址4.基址变址寻址基址变址寻址5.相对基址变址寻址相对基址变址寻址指令中给出是操作数的地址值,即偏移地址,也称为有效地址EA(Effctive Address),而段地址一般默认DS段寄存器第8页/共25页1.1.直接寻址直接寻址有效地址EA在指令中直接给出默认的段地址在DS段寄存器中MOV AX,0200H意思是AX(DS:0200H)即 AX(1000H:0200H)结果是(AX)=1C3AHADD AX,0200H10000H10001H10002H00000HFFFFFH假设(DS)=1000H10200H3AH1CH数 据 段第9页/共25页直接寻址直接寻址例子:假设(AX)=1212H,BUF为数据段内某个符号地址,其值是2000H,(DS)=3000H,(32000H)=4545H。执行指令:MOV AX,BUF那么指令执行后(AX)=?解答:分析指令内容可知,操作数之一为寄存器,另一个来自存储器,其偏移地址已经直接给出,因此属于直接寻址。即AX(DS:BUF),AX(3000H:2000H),AX(32000H),因此(AX)=4545H第10页/共25页2.2.寄存器间接寻址寄存器间接寻址有效地址EA在寄存器中,具体是BX、BP或SI、DI。默认的段地址在DS段寄存器中MOV AX,BX意思是AX(DS:BX)即 AX(1000H:0200H)结果是(AX)=1C3AH10000H10001H10002H00000HFFFFFH10200H3AH1CH数 据 段假设(DS)=1000H (BX)=0200HADD AX,BX第11页/共25页2.2.寄存器间接寻址寄存器间接寻址BX、BP:基址寄存器DI、SI:变址寄存器该方法特点:只要修改寄存器的值,就可以访问某个段内的任意存储单元的内容第12页/共25页3.3.寄存器相对寻址寄存器相对寻址有效地址EA是寄存器内容与某个位移量之和,寄存器可以是BX、BP或SI、DI即:有效地址EA=(BX)+位移量MOV AX,BX0008H意思是AX(DS:(BX)+0008H)即 AX(1000H:0208H)结果是(AX)=2D05H假设(DS)=1000H (BX)=0200H10000H10001H10002H00000HFFFFFH10200H3AH1CH数 据 段10208H05H2DH第13页/共25页该方法特点:只要有序(如递增或递减)修改寄存器的值,就可以访问某个段内的一片连续存储单元的内容,非常适合于类似高级语言中数组的应用3.3.寄存器相对寻址寄存器相对寻址10000H10001H10002H00000HFFFFFHxxyyzz位移量首地址第14页/共25页其它语法格式:MOV AX,BX+0008HMOV AX,cntBX备注:在汇编语言中,常采用符号来代表某个偏移地址值,如上例中的 cnt 就是符号地址3.3.寄存器相对寻址寄存器相对寻址10000H10001H10002H00000HFFFFFHxxyyzzcnt首地址第15页/共25页4.4.基址变址寻址基址变址寻址有效地址EA由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:有效地址EA(BX)/(BP)(SI)/(DI)MOV AX,BXSIMOV AX,BPDI备注:当采用BX作为基址寄存器时,默认段寄存器为DS当采用BP作为基址寄存器时,默认段寄存器为SS第16页/共25页5.5.相对基址变址寻址相对基址变址寻址有效地址EA是基址寄存器(BX/BP),变址寄存器(SI/DI)与某个位移量之和:有效地址(BX)/(BP)(SI)/(DI)位移量MOV AX,MASKBXSI假设MASK=0020H,(BX)=2000H,(SI)=1000H,(DS)=3000H意思是AX(3000H:0200H+2000H+1000H)即 AX(33200H)第17页/共25页存储器寻址方式小结存储器寻址方式小结MOV AX,0020H 或 MOV AX,D1 MOV AX,BXMOV AX,BX0030HMOV AX,BXDIMOV AX,BXDI0030H第18页/共25页逻辑段分配逻辑段分配第19页/共25页直接寻址的功能直接寻址的功能第20页/共25页寄存器相对寻址的功能寄存器相对寻址的功能第21页/共25页基址变址寻址的功能基址变址寻址的功能第22页/共25页相对基址变址寻址的功能相对基址变址寻址的功能第23页/共25页(DS)=2000H,(SS)=1000H,(BX)=00BBH,(BP)=0002H,(SI)=0100H,(DI)=0200H(200BBH)=1AH,(200BCH)=23H,(200CCH)=68H,(200CDH)=7AH(201BBH)=34H,(201BCH)=89H,(201CCH)=56H,(201CDH)=5DH(10202H)=78H,(10203H)=67H,(21200H)=2AH,(21201H)=4CH练习题练习题有关寄存器及存储单元的内容如下:第24页/共25页感谢观看!感谢观看!第25页/共25页