就业数据资源平台
当前位置:首页 > PC技术
全国计算机考试三级PC技术第二章(13)

基本指令系统


1.传送指令


传送指令用于寄存器、存储单元或输入/输出端口之间传送数据或地址,除了部分标志传送指令外,这类指令不会影响标志位的状态。但要说明的是:第一,两个段寄存器之间不能直接传送数据;第二,两个存储单元之间不能直接传送数据,两操作数中必须有一个是寄存器或立即数;第三,立即数和段寄存器CS不能作为目的操作数,并且立即数也不能直接传送到段寄存器;第四,操作数的类型和长度必须一致,并且不允许溢出。


(1) 通用数据传送指令


MOV DST,SRC;(DST)←(SRC)


MOVSX DST,SRC ;(DST)←符号扩展(SRC)


MOVZX DST,SRC ;(DST)←零扩展(SRC)


XCHG DST,SRC;(DST)←→(SRC)


BSWAP REG;交换字节顺序


PUSH SRC;(SP或ESP)←(SP或ESP)-2或4,(SP或ESP)←(SRC)


POP DST;(DST) ←(Sp或ESP),(SP或ESP)←(SP或ESP)+2或4


PUSHA/PUSHAD;8个16/32位通用寄存器数据依次进栈


POPA/POPAD;8个16/32位数据依次出栈,送通用寄存器


(2)累加器专用传送指令


IN ACC,PORT ;(ACC)←(PORT)


OUT PORT,ACC ;(PORT)←(ACC)


 (3)地址传送指令


LEA REG,SRC        ;(REG)←SRC


LDS REG,SRC        ;(REG)←(SRC),(DS)←(SRC+2或4)


LES REG,SRC          ;(REG)←(SRC),(ES)←(SRC+2或4)


LFS REG,SRC        ;(REG)←(SRC),(FS)←(SRC+2或4)


LGS REG,SRC        ;(REG)←(SRC),(GS)←(SRC+2或4)


LSS REG,SRC        ;(REG)←(SRC),(SS)←(SRC+2或4)


(3)标志传送指令


LAHF                 ;(AH)←(FLAGS低字节)


SAHF                 ;(FLAGS低字节)←(AH)


PUSHF/PUSHFD        ;(FLAGS进栈


POPF/POPFD           ;FLAGS出栈


2.算述运算指令


1)加法指令


ADD DST,SRC            ;(DST) ←(DST)+(SRC)


ADC DST,SRC            ;(DST) ←(DST)+(SRC)+CF


INC DST                 ;(DST) ←(DST)+1


XADD DST,SRC           ;(TEMP←(DST)+(SRC),(SRC) ←(DST),(DST) ←TEMP


AAA                    ;(AL) ←将AL中的和调整为非组合BCD码


DAA                    ;(AL)←将AL中的和调整为组合BCD码


2)减法指令


SUB DST,SRC              ;(DST)←(DST)-(SRC)


SBB DST,SRC               ;(DST)←(DST)-(SRC)-CF


DEC DST                     ;(DST)←(DST)-1


NEG DST                     ;(DST)←0-(DST)


CMPDST,SRC                ;(DST)-(SRC)


CMPXCHG DST,SRC          ;若(ACC)=(DST),ZF←1,(DST)←(SRC);否则ZF←0,(ACC)←(DST)


CMPXCHG8B DST            ;(EDX,EAC)中的数据与DST中指定的64位数据比较


DAS                        ;(AL)←将AL中的差调整为组合BCD码


AAS                        ;(AL)←将AL中的差调整为非组合BCD码


3)乘法指令


(1)单操作数乘法指令


MUL SRC              ;(AX)或(DX,AX)或(EDX,EAX)←ACC)*(SRC)


IMUL SRC              ;(AX)或(DX,AX)或(EDX,EAX)←(ACC)*(SRC)


(2)双操作数和三操作数乘法指令


IMUL REG,SRC1            ;REG16/32←REG16/32*(SRC1)


IMUL REG,SRC2,IMM      ;REG16/32←(SRC2)*IMM


(3)乘法的ASCII调整指令


AAM(ASCII adjust after multiplication)用于将字节乘法的积转换成两个非组合型BCD码。


4)除法指令


DIV SRC          ;(ACC)/(SRC),(AL)或(AX)(EAX)←商,(AH)或(DX)或(EDX)←余数


IDIV SRC         ;(ACC)/(SRC),(AL)或(AX)或(EAX)←商,(AH)或(DX)或(EDX)←余数

就业数据资源平台