指令的基本功能: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/LoDSWload 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二进制递减法运算中最高有效位为高位无位OF1=反,结果符号与减数相同。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:AHALBX:BHBLCX:CHCLDX:DHDLに分割することができ、各レジスタ メモリには独自の名前があり、独立してアクセスできます。プログラマは、データレジスタのこのような「分割可能」な特性を利用して、ワード/ワードを柔軟に処理することができる セクションの情報。 入出力などの操作を除いて、それらの使用頻度は非常に高い、 で、マルチビットをシフトする場合、シフトのビット数をCLで指定する必要があります。 I/Oを格納するために使用できるポートアドレス。 16ビットCPUでは、AXBXCXおよびDXは、ベースアドレスおよびインデックスレジスタとしてメモリセルのアドレスを格納することはできませんが、32ビットCPUでは32ビット レジスタEAXEBXECX及びEDXは、転送データ一時データ保存算術論理演算結果だけだ、ポインタレジスタとしても、 したがって、これらの32ビットレジスタはより汎用性があります。 2インデックスレジスタ 32ビットCPUには、32ビット汎用レジスタESIとエディが2つあります。その下位16ビットは以前のCPUにおけるSIとDIに対応し、下位16ビットデータへのアクセスに影響を与えない 16ビット高いデータ。 これらを使用することで、複数のメモリオペランドのアドレス指定方式を実現することができ、異なるアドレス形式でメモリユニットにアクセスするのに便利である。
[新闻自媒体]
インデックスレジスタは8ビットレジスタに分割できない。汎用レジスタとして、算術論理演算のオペランドと演算結果を記憶してもよい。 一般的なメモリポインタとして使用できます。文字列操作命令の実行中には、特定の要件があり、特定の 特別な機能。 3ポインタレジスタ 32ビットCPUには2つの32ビット汎用レジスタEBPとESPがある。その下位16ビットは以前のCPUにおけるSBPとSPに対応し、下位16ビットデータへのアクセスは、影にならない 16ビットのデータが鳴る。 ポインタレジスタは8ビットレジスタに分割できない。汎用レジスタとして、算術論理演算のオペランドと演算結果を記憶してもよい。 これらは主にスタック内のメモリセルにアクセスするために使用され、次のように規定されています。 4セグメントレジスタ セグメントレジスタは、メモリセグメントの管理モードに応じて設定されます。メモリセルの物理アドレスは、セグメントレジスタの値とオフセット量を組み合わせたものである のように、より大きな物理空間にアクセスできるメモリアドレスに2つのより少ないビット数の値を組み合わせることができます。 CPU内部のセグメントレジスタ: 16ビットCPUシステムでは、4つのセグメントレジスタしかないので、プログラムはいつでも最大4つの使用中セグメントに直接アクセスできます。32ビット マイコンシステムには、6つのセグメントレジスタがあるので、この環境で開発されたプログラムは最大6つのセグメントに同時にアクセスできます。 32ビットCPUには2つの異なる動作方法があります:実モードと保護モード。各方式では、セグメントレジスタの役割は異なる。関連規定の概要 単一の説明は次のとおりです。 実際の方式:前の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。 溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所 能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。 “溢出”和“进位”是两个不同含义的概念,不要混淆。如果不太清楚的话,请查阅《计算机组成原理》课程中的有关章节。 二状态控制标志位 状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。 1追踪标志TF 当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这 种方式主要用于程序的调试。 指令系统中没有专门的指令来改变标志位TF的值,但程序员可用其它办法来改变其值。
中断许可标志IFはCPU外部の可屏蔽中断発出の中断请求に応じる可否で决定。但是,该目标值为多少,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:当IF=1时,CPU可响应CPU外部的可屏蔽中断发出的中断请求;当IF=0时,CPU不应响应CPU外部的可屏蔽中断发出的中断请求。CPUの指令システムには、目标位置IFの値を専门的な指令に変更する。方向标志DFは、串操作指令执行时に指针寄生器が起きた调整の方向を决定する。具体的规定是第5.2.11节——字符串操作指令——中给。在微机的指令系统中,还提供了专业的指令来改变目标位置DF的值。3、32位のマークレースが増加したマークス位I/O特権マークは2位二进制制位で表示し、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
发表评论