欢迎来到天天文库
浏览记录
ID:27571991
大小:980.01 KB
页数:99页
时间:2018-12-01
《位32位微处理器指令系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章16位/32位微处理器指令系统3.1指令的基本格式3.28086/8088的寻址方式3.38086/8088的指令系统3.480386的寻址方式和指令系统3.5Pentium新增加的指令3.1指令的基本格式3.1.1指令的构成3.1.28086/8088的指令格式3.1.1指令的构成包括两部分:表示操作性质或类型编码-操作码。操作对象-操作数。一般来说,第一字节表示操作码,第二字节表示寻址方式,第三、四字节表示操作数在内存的位移量或者是立即数(在指令中没有位移量时),第五、六字节表示立即数。3.1
2、.28086/8088的指令格式基本格式为:[标号:]操作码助记符目的操作数,源操作数[;注释]标号为该条指令所在内存单元的符号地址,后面要跟冒号。标号一般由字母开头,后跟字母、数字或特殊字符,注意不允许使用保留字,例如:MOV,SEGMENT,END等。操作码助记符,指示CPU执行什么样的操作。操作数分目的操作数和源操作数两种,目的操作数是指令结果存放的位置,源操作数是指令操作的对象。目的操作数应放在源操作数前,并以逗号隔开。注释用来说明本条指令或一段程序的功能,使程序可读性强。注释由分号(;)开始,
3、汇编程序对其不进行处理。3.28086/8088的寻址方式一条汇编语言指令,有两个问题需要关注,一是该条指令将进行什么操作,另一个就是操作的对象和操作后结果的存放位置。操作数的寻址方式就是指寻找操作数位置的方式。1.立即寻址(Immediateaddressing)操作数包含在指令中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中)。这种操作数称为立即数可以是8位数值(00H~FFH)也可以是16位数值(0000H~FFFFH)MOVAL,80H;将80H送入ALMOVAX,306
4、AH;将306AH送入AX立即数寻址方式常用来给寄存器和存储单元赋值,多以常量形式出现。操作数直接在指令中取得,不需要使用另外的总线周期,执行时间短、速度快。2.寄存器寻址(Registeraddressing)操作数存放在CPU的内部寄存器中:8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器:AX、BX、CX、DX、SI、DI、BP、SP4个段寄存器:CS、DS、SS、ES寄存器名表示其内容(操作数)。MOVAL,BL;将BL的内容传送到AL中MOVBX,AX;将AX的内容传送到
5、BX中采用寄存器寻址的指令在执行时,操作数就在CPU中,不需要访问存储器来取得操作数,执行速度快。另外寄存器名比内存地址短,指令所占内存空间少。3.直接寻址(DirectAddressing)通常把操作数的偏移地址称为有效地址EA(EffectiveAddress),EA可通过不同的寻址方式来得到。直接寻址方式的有效地址在指令中直接给出。默认的段基址在DS段寄存器,可使用段前缀改变。用方括号包含有效地址。MOVAX,[1000H];若(DS)=2000H,则将数据段21000H、21001H两个单元的内
6、容送到AX。如果有效地址是以符号地址形式提供,则可不加方括号。MOVAX,BUFA;BUFA为符号地址,这时不加跨段前缀,默认仍为DS数据段。如BUFA变量在附加段中,就必须书写为:MOVAX,ES:BUFA4.寄存器间接寻址(RegisterindirectAddressing)有效地址存放在基址寄存器BX、BP或变址寄存器SI、DI中。如用BX、SI或DI作为间址寄存器,则默认的段基址在DS段寄存器。如用BP作为间址寄存器,则默认的段基址在SS段寄存器。可使用段前缀改变。MOVAX,[BX];若(D
7、S)=2000H,(BX)=1000H,则将数据段21000H、21001H两个单元的内容送到AX中。MOVCX,[BP];若(SS)=4000H,(BP)=1000H,则将堆栈段41000H、41001H两个单元的内容送到CX中。MOVAX,ES:[SI];若(ES)=3000H,(SI)=1000H,则将附加段31000H、31001H两个单元的内容送到AX中。5.基址寻址和变址寻址有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。有效地址=BX/BP/SI/D
8、I+8/16位位移量如果寄存器为BX或BP,则为基址寻址如果寄存器为SI或DI,则为变址寻址段基址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段前缀改变。例:MOVAX,[SI+3000H]的执行结果设(DS)=4000H,(SI)=2000H,内存单元(45000H)=34H,(45001H)=12H。首先求操作数的物理地址:物理地址=(DS)×16+(SI)+3000H=40000H+2000H+3000H=45
此文档下载收益归作者所有