第3章32位微处理器指令系统.pptVIP

  • 5
  • 0
  • 约1.49万字
  • 约 115页
  • 2023-04-07 发布于广东
  • 举报
;3.1 32位指令运行环境 ;2. 32位段;3.2 寻址方式 ; 指令根据一定的方式,先找到存储操作数的空间地址,然后取出操作数进行处理。寻找操作数的方式称为寻址方式。 ; 操作数地址由 段基址 和 段内偏移地址共同产生。 段基址由段基址寄存器提供,有CS、SS、DS、ES、FS和GS。 段内偏移地址也称为有效地址EA(effective address),32位有效地址的公式是:; 32位寻址方式:段寄存器、基址寄存器、变址寄存器、比例因子和位移量的关系见表3-2 ;说明: ;6.位移量是8位或32位的带符号数,所谓带符号数是指补码表示的二进制数。 7.立即寻址时,段寄存器为CS,以IP(16位)或EIP(32位)为段内偏移地址,找到指令的同时也就找到了数据。 8.16位寻址方式时段寄存器、基址寄存器、变址寄存器和位移量的关系见表3-3。 ; 在介绍各种寻址方式之前,先说明指令格式中出现的助记符号: ;3.2.2 立即寻址: ; 例【3-1】 指令MOV AX,#0002H,是将立即数0002H送到AX中。MOV EAX,指令是将立即传送给EAX。 ;3.2.3 寄存器寻址 ;3.2.4 存储器寻址方式: ;1.直接寻址:;例【3-5】 假定在数据段DS有双字变量定义为: VAR DD 其中VAR是变量名,在经过汇编与连接生成可执行的程序在执行时,它有实际物理地址,由段寄存器DS与偏移地址EA组成。在执行指令MOV EAX,VAR时,其功能是根据变量名VAR的DS和EA,从数据段内偏移地址为EA的内存单元,连续读取4个字节数送给EAX,即(EAX)。 ;2.基址寻址;3.基址加位移寻址;4.比例变址寻址:;5.比例变址加位移寻址:;6.基址加比例变址寻址;7.基址加比例变址加位移寻址;8.16位的存储器寻址方式 ;(2)基址寻址 指令中以基址寄存器BX或BP中值为16位的偏移地址访问内存,物理地址=段寄存器值*16+偏移地址。以BX和BP为基址寄存器分别访问数据段和堆栈段。 例【3-16】 MOV AL,[BX] ;访问DS段 MOV DX,[BP] ;访问SS段 ;(3)变址寻址 指令中以源变址寄存器SI或目的变址寄存器DI中值为16位的偏移地址访问内存,物理地址=段寄存器值*16+偏移地址。所访问的数据段都是DS数据段。 例【3-18】 MOV AL,[SI] ;访问DS段 MOV DX,[DI] ;访问DS段;(4)基址(加)变址寻址 指令中以基址寄存器的值加上变址寄存器的值所换算的结果作为偏移地址访问内存,基址寄存器与变址寄存器的组合以及默认访问的段,见表3-3。 例【3-20】 MOV AL,[BX+SI] ;访问DS段,可以写成MOV AL,[BX][SI]形式 MOV DX,[BP+DI] ;访问SS段,可以写成MOV DX,[BP][DI]形式 ;(5)相对基址(加)变址寻址: 相对基址(加)变址寻址是在基址(加)变址寻址的基础之上,加上一个带符号的8位或16位的位移量,最后形成一个16位的偏移地址,所访问的段、基址寄存器与变址寄存器的组合与上述的相同。;3.3 32位微处理器指令系统概述 ;1.32位微处理器指令系统的四种格式: ;(2)单操作数指令 格式为[标号:] 操作符 OPD(地址) [;注释] 它的操作规定为: ① 操作对象为目的地址中的操作数,操作结束后,其运算结果送入目的地址中。 ② 操作数不能是立即数。 ③ 操作数类型必须明确。 如 INC BYTE PTR[2233H],用数据类型说明符PTR对内存数据定义为字节(BYTE)。 如 INC AX,由于AX为16位寄存器,数据类型确定为字类型。 ;(3)双操作数指令 格式为 [标号:] 操作符 OPD,OPS [;注释] 它的操作规定为: ① OPD和OPS应具有相同的类型,即必须同时是8、16或32位。 ② 目的操作数OPD不能是立即数。 ③ 操作结束后,其操作结果送入目的操作数中,而源操作数并不改变。 (只有CMP、TEST等极少数指令不影响目的操作数)。 ④ 源操作数和目的操作数不能同时为存储器操作数。假如一个操作数在存储器中,则另一个操作数要么是寄存器操作数,要么是立即数,但是立即数不能作为目的操作数。下列两条指令是错误的。 ADD [EA

文档评论(0)

1亿VIP精品文档

相关文档