具体规定在第 5.2.11节——字符串操作指令——中给出

指令的基本功能:LDS和LES指令把确定内存单元位置的偏移地址送寄存器,段地址 DS或ES。这个偏移地址和段地址是由src指定的两个相继字单元提供的。 LDS reg,src 1时,cnt必须放入CL寄存 器中。 指令对标志位的影响:CF=移入的数值 OF=1 当cnt=1时,移动后最高位的值发生变化。 OF=0 当cnt=1时,移动时最高位的值未发生变化。 SFZFPF根据移动后的结果设置。 指令的汇编格式:RCL dst,cnt 指令的基本功能:RCL 对由dst指定的寄存器或存储器操作数,连同进位标志CF左循环移动,m所指定的次数,每左移一次,把操作数的最高位移入CF,而CF中原有内容移入操作 数的最低位。 指定支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数cnt=1时,1可以直接写在指令 中,cnt〉1时,cnt必须放入CL寄存器中。 指令对标志位的影响:CF=移入的数值。 OF=1 当cnt=1时,移动后最高位的值未发生变化。 OF=0 当cnt=1时,移动后最高位的值发生变化。 SFZFPF标志位不受影响。 指令的汇编格式:RCR dst,cnt 指 令的基本功能:RCR 对由dst指定的寄存器或存储器操作数,连同进位标志CF右循环移动,m所指定的次数,每右移一次,把操作数的最高低位移入CF,而CF中原有内容移入操 作数的最高位。 指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数cnt=1时,1可以直接写入指令 中,cnt〉1时,cnt必须放入CL寄存器中。 指令对标志位的影响:CF=移入的数值。 OF=1 当cnt=1时,操作数最高位的值未发生变化。 OF=0 当cnt=1时,操作数最高位的值发生变化。 SFZFPF标志位不受影响。 一设置方向标志指令 指令的汇编格式:CLD STD 指令的基本功能:CLD DF=0 STD DF=1 二串处理指令 38串传送 MOVSB / MOVSW move string byte/word 指 令的汇编格式:MOVSB MOVSW 指令的基本功能: 或+/-2 或+/-2 指令对条件码的影响:不影响条件码。 指令的特 殊要求:源串必须在数据段中,目的串必须在附加段中,串处理指令隐含的寻址方式是SI和DI寄存器的间接寻址方式。源串允许使用段跨越前缀来指定段。 39 存串 STOSB / STOSW stroe from string byte/word 指令的汇编格式:STOSB STOSW 指 令的基本功能: 或+/-2 指令对条件码的 影响:不影响条件码。

指令的特殊要求:源串必须在数据段中,目的串必须在附加段中,串处理指令隐含的寻址方式是SI和DI寄存器的间接寻址方式。 源串允许使用段跨越前缀来指定段。 40取串LODSB / LODSW load from string byte/word 指 令的汇编格式:LODSB LODSW 指令的基本功能: 或+/-2 指令对条件码的影响:不影响条件码。 指令的特殊要求:源串必须在数据段中,目的串必须在附加段中,串处理指令隐含的 寻址方式是SI和DI寄存器的间接寻址方式。源串允许使用段跨越前缀来指定段。 指令的汇编格式:CMPSB CMPSW 指令的基本功能: 根据比较结果设置条件码 或+/-2 或+/-2 指令对条件码的影响:SF=1 减法结果为负数 SF=0 减法结果为正数 ZF=1 减法结果为零 ZF=0 减法结果不为零 CF=1 二进制减法运算中最高有效位向高位有借位 CF=0 二进制减法运算中最高有效为向高位无借位 OF=1 两数符号相反,而结果符号与减数相同。 OF=0 同符号数相减时,或不同符号数相减,其结果符号与减数不同。 三 循环指令 68循环 LOOP 指令的汇编格式:LOOP label 指令的基本功能:① -1 ② 若当前+位移量,否则循环结束。 指令的特殊要求:循环指 令都是短转移格式的指令,也就是说,位移量是用8位带符号数来表示的,转向地址在相对于当前IP值的-128 ~+127字节范围之内。 指令的汇编格 式:LOOPNZ/LOOPNE label 指令的基本功能:① -1 ② 若ZF=1且当前+位移量,否则循环结束。 指令的特殊要求:循环指令都是短转移格式的指令,也就是说,位移量 是用8位带符号数来表示的,转向地址在相对于当前IP值的-128 ~+127字节范围之内。 指令的汇编格式:LOOPNZ/LOOPNE label 指令的基本功能:① -1 ② 若ZF=0且当前+位移量,否则循环结束。 指令的特殊要求:循环指令都是短转移格式的指令,也就是说,位移量 是用8位带符号数来表示的,转向地址在相对于当前IP值的-128 ~+127字节范围之内。 回页首 CPU常见寄存器介绍 32位CPU所含有的寄存器有: 4个数据寄存器 2个变址和指针寄存器 2个指针寄存器 6个段寄存器 1个指令指针寄存器 1数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。 32位CPU有4个32位的通用寄存器EAXEBXECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些 低16位寄存 器分别命名为:AXBXCX和DX,它和先前的CPU中的寄存器相一致。

4个16位寄存器又可分割成8个独立的8位寄存器AX:AH-ALBX:BH-BLCX:CH-CLDX:DH-DL,每个寄 存 器都有自己的名称,可独立存取。程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字 节的信息。 除输入/输出等 操作,它们的使用频率很高; 中,当移多位时,要用CL来指明 移位的位数; 可 用于存放I/O的端口地址。 在16位CPU中,AXBXCX和DX不能作为基址和变址寄存器来存放存储单元的地址,但在32位CPU中,其32位 寄存器 EAXEBXECX和EDX不仅可传送数据暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器, 所以,这些32位寄存器更具有通用性。 2变址寄存器 32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响 高16位的数 据。 用它们可实 现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

[体育资讯]

变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。 它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特 殊的功能。 3指针寄存器 32位CPU有2个32位通用寄存器EBP和ESP。其低16位对应先前CPU中的SBP和SP,对低16位数据的存取,不影 响高16位的 数据。 指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。 它们主要用于访问堆栈内的存储单元,并且规定: 4段寄存器 段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成 的,这样可用两个较少位数的值组合成一 个可访问较大物理空间的内存地址。 CPU内部的段寄存器: 在16位CPU系统中,它只有4个段寄存器,所以,程序在任何时刻至多有4个正在使用的段可直接访问;在32位 微机系统中,它有6个段寄存 器,所以,在此环境下开发的程序最多可同时访问6个段。 32位CPU有两个不同的工作方式:实方式和保护方式。在每种方式下,段寄存器的作用是不同的。有关规定简 单描述如下: 实方式: 前4个段寄存器CSDSES和SS与先前CPU中的所对应的段寄存器的含义完全一致,内存单元的逻辑 地址仍为“段值:偏移 量”的形式。为访问某内存段内的数据,必须使用该段寄存器和存储单元的偏移量。 5指令指针寄存器

32位CPU将指令指针扩大到32位,并将其记录为EIP。EIPの低16位は前一个CPUのIPと同じ机能を持つ。在“是”系统中,下一次执行的指令通常予取指令队列中,除非发生传送。そのためそれらの机能を理解するときは指令列の存在を考えない。在实数模式下,由于每段的最大范围为64K,EIP中的高16位必须为0。此时,其同仅使用低16位IP以反映程序中指令的执行顺序。6标志寄存器一操作结果标志位1进位标志CF进位标志CF主要用于反映操作是生成进位还是借款。运算结果の最高位生产进位あるいは借位である场合は、その値は1である场合は、その値は0である。该标识位的使用包括:多字数的增减、无符号数的大小比较、移位操作、字间移位、CF值的更新指令等。2奇偶校验标志PF奇偶校验标志PF用于反映运算结果中“1”数的奇偶校验。如果“1”的数为偶数,则PF的值为1;否则为0。PF可用于执行奇偶校验或生成奇偶校验位。在数据传输过程中,为了提供传输的可靠性,如果采用奇偶校验方法,则可以使用标识位。当发生以下情况时,辅助进位标识AF的值设置为1,否则其值为0:当低字节在字操作期间携带或借用高字节时;在文字节操作期间,从低4位到高4位的进位或借位发生。上述6个操作结果标志位,在一般程序中,标志位cfzfsf和of的使用频率较高,而标志位PF和AF的使用频率较低。4零标记ZF零标记ZFは、运算结果を反映するのは0です。如果运算结果为0,则值为1;否则,值为0。在判断运算结果是否为0时,可以使用该标识。5符号符号SF符号SF用于反映运算结果的符号位,该符号位与运算结果的最高相位相同。在微机系统中,符号数用补码表示,因此SF也反映运算结果的符号。当运算结果为正数时,SF的值为0;否则,该值为1。的溢出标识用的是有符号数的增减结果是否溢出。如果运算结果超过了当前运算位所代表的范围,则称为溢出,并且将值设置为1;不规则,的值将清除为0。“溢れ”和“进位”是两个含义不同的概念。それらを混淆しない。如果您不清楚,请参阅“计算机合成原理”课程中的相关章节。二状态控制标识位状态控制标识位使用控制CPU操作。特别说明に基づく改定ができる。1跟踪标记TF当跟踪标记TF设置为1时,CPU进入单步执行模式,即执行每条指令,生成单步中断请求。该方法主要用于程序调整试验。指令系统中没有变更标志位TF值的特殊指令,但程序员可以通过其方法变更其值。

具体规定在第 5.2.11节——字符串操作指令——中给出

中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发 出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下: 当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求; 当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。 CPU的指令系统中也有专门的指令来改变标志位IF的值。 方向标志DF用来决定在串操作指令执行时有关指针寄存器发生调整的方向。具体规定在第 5.2.11节——字符串操作指令——中给出。在微机的指令系统中,还提供了专门的指令来改变标志位DF的值。 三32位标志寄存器增加的标志位 I/O特权标志用两位二 进制位来表示,也称为I/O特权级字段。该字段指定了要求执行I/O指令的特权级。如果当前的特权级别在数值上小于等于IOPL的值,那么,该I/O指令 可执行,否则将发生一个保护异常。 2嵌套任务标志NT 嵌套任务标志NT用来控制中断返回指令IRET的执行。具体规定如下: 当NT=0,用堆栈中保存的值恢复EFLAGSCS和EIP,执行常规的中断返回操作; 当NT=1,通过任务转换实现中断返回。 重启动标志RF用来控制是否接受调试故障。规定:RF=0时,表示“接受”调试故障,否则 拒绝之。在成功执行完一条指令后,处理机把RF置为0,当接受到一个非调试故障时,处理机就把它置为1。 如果该标志的值为1,则表示处理机处于虚拟的8086方式下的工作状态,否则,处理机处于一般保护方式下的工作状态。


1a

发表评论

Copyright 2002-2022 by 尔韵网络游戏门户网(琼ICP备2022001899号-3).All Rights Reserved.