内容发布更新时间 : 2024/12/23 16:47:36星期一 下面是文章的全部内容请认真阅读。
地址总线:AB(单向输出) 数据总线:DB(双向总线)
控制总线:CB(输出输入或双向)
4个16位数据寄存器:AX累加器.BX基址寄存器.CX计数寄存器.DX数据寄存器
高八位记作:AH.BH.CH.DH低八位ALBLCLDL
指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器 变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI目的变址寄存器
进位标志位:CF最高位 奇偶标志位:PF
低8位1的个数为偶时为1 辅助进位标志位:AF低4位向高4为有进位时
零标志位:ZF算术逻辑运算为零时为1 符号标志位:SF运算结果最高位为1时为1
溢出标志位:OF结果超出有符号数补码表示的范围时为1
跟踪标志位:TF单步中断方式逐条检查 方向标志位:DF
中断允许标志位:IF为1时CPU可以响应可屏蔽中断(INTR)请求
立即数寻址:MOV BL,5BH 寄存器寻址:MOV DS,AX
存储器寻址:
直接寻址:MOV AX,[2000H] 寄存器间接寻址:MOV AX,[BP]
操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中 默认DS为基址,在BP中默认SS为基址
寄存器相对寻址:MOV AX,COUNT[SI] 例:MOV BP:[DI+45H]
基址加变址寻址:MOV AX, [SI+BP]
相对基址加变址寻址指令 MOV AX, [SI+BP+1234H] 指令
数据传送指令MOV dst,src 交换指令:XCHG dst,src
查表指令:XLAT[表首址]DS:(BX+AL)给AL 堆栈传送指令:PUSH src 取偏移地址指令;LEA dst,src 指针送寄存器和DS:LDS dst,src 指针送寄存器和ES:LES dst,src
标志传送指令:LAHF SAHF PUSHF POPF 输入、输出指令:IN.OUT 加法指令:ADD dst,src
带进位加法指令:ADC dst,src (CF也要加) 加1指令:INC dst 减法指令:SUB dst,src
带借位减法指令:SBB dst,src(也要减CF)
减1指令:DEC src111 求补指令:NEG src (0减src) 比较指令:CMP dst,src(相减但不送回目的操作数,结果都不变)
乘法指令:MUL src 字节操作数:AL*src给AX 字操作数:AX*src给AX
带符号数乘法指令:IMUL src 字运算AX字节运算AL 除法指令:DIV src 字节将AX/src给AL余数该AH 字将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src
CBW 将字节转换为字 CWD将字转换为字节
逻辑运算:
逻辑与:AND dst,src 逻辑或:OR dst,src 非:NOT dst
异或:XOR dst,src
测试:TEST dst,src(测试判断某些位知否同时为0)
移位指令
算术左移指令SAL dst, CL;移位位数 逻辑左移指令SHL dst ,CL;移位位数 算术右移指令:SAR dst ,CL;移位位数 逻辑右移指令:SHR dst,CL ;移位位数
循环移位指令:
循环左移指令:ROL dst,CL;移位位数 循环右移指令:ROR dst,CL;移位位数 带进位循环左移:RCL dst,CL;移位位数 带进位循环右移:RCR dst,CL;移位位数
串操作指令:
串传送指令:MOVS/W 串比较指令:CMPSB/W 串搜索指令:SCASB/W 取串指令:LODS/W 存串指令:STOSB/W
重复前缀指令:REP SOPR 重复执行REP指令后紧跟着的一个串操作指令,知直到CX寄
存器中的值为0 REPE/REPZ执行REPE/REPZ后紧跟的一个串操作指令,当相等、为0时重复,直到CX=0/ZF=0 REPNE/REPNZ 执行REPNE/REPNZ后紧跟的串操作指令当不为0、不相等时重复,直到CX=0/ZF=0
转移指令:
远程转移:JMP FAR PTR OPRD(IP=IP+16位移量) 近程转移:JMP NEAR PTR OPRD (IP=IP+8位移量) 段内间接转移:JMP reg16 JMP men16
(IP)←reg16或men16
段间间接转移:JMP DWORD PTR [BX+SI]
调用和返回指令:
段内直接调用:CALL dst(SP=SP-2,SP+1,IP指向SP,IP=IP+16
段内直接调用:CALL dst (同,同,EA指向IP) 段间直接调用:CALL dst(SP=SP-2,SP+1,CS指向SP,SP=SP-2,SP+1,IP指向SP,
偏移地址指向IP,段地址指向CS)
段间间接调用:CALL dst 段内返回:RET(IP=SP+1,SP,SP=SP+2) 段内带立即数返回:RET n
循环控制指令:
LOOP OPRD(CX=CX-1,若CX≠0则循环 LOOPNZ/LOOPE OPRD(CX=CX-1,若CX≠0ZF=0则循环)
LOOPZ/LOOPE OPRD 地址总线:AB(单向输出) 数据总线:DB(双向总线)
控制总线:CB(输出输入或双向)
4个16位数据寄存器:AX累加器.BX基址寄存器.CX计数寄存器.DX数据寄存器
高八位记作:AH.BH.CH.DH低八位ALBLCLDL
指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器 变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI目的变址寄存器
进位标志位:CF最高位 奇偶标志位:PF
低8位1的个数为偶时为1 辅助进位标志位:AF低4位向高4为有进位时
零标志位:ZF算术逻辑运算为零时为1 符号标志位:SF运算结果最高位为1时为1
溢出标志位:OF结果超出有符号数补码表示的范围时为1
跟踪标志位:TF单步中断方式逐条检查 方向标志位:DF
中断允许标志位:IF为1时CPU可以响应可屏蔽中断(INTR)请求
立即数寻址:MOV BL,5BH 寄存器寻址:MOV DS,AX
存储器寻址:
直接寻址:MOV AX,[2000H]
寄存器间接寻址:MOV AX,[BP]
操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中 默认DS为基址,在BP中默认SS为基址
寄存器相对寻址:MOV AX,COUNT[SI] 例:MOV BP:[DI+45H]
基址加变址寻址:MOV AX, [SI+BP]
相对基址加变址寻址指令 MOV AX, [SI+BP+1234H] 指令
数据传送指令MOV dst,src 交换指令:XCHG dst,src
查表指令:XLAT[表首址]DS:(BX+AL)给AL 堆栈传送指令:PUSH src 取偏移地址指令;LEA dst,src 指针送寄存器和DS:LDS dst,src 指针送寄存器和ES:LES dst,src
标志传送指令:LAHF SAHF PUSHF POPF 输入、输出指令:IN.OUT 加法指令:ADD dst,src
带进位加法指令:ADC dst,src (CF也要加) 加1指令:INC dst 减法指令:SUB dst,src
带借位减法指令:SBB dst,src(也要减CF)
减1指令:DEC src111 求补指令:NEG src (0减src) 比较指令:CMP dst,src(相减但不送回目的操作数,结果都不变)
乘法指令:MUL src 字节操作数:AL*src给AX 字操作数:AX*src给AX
带符号数乘法指令:IMUL src 字运算AX字节运算AL 除法指令:DIV src 字节将AX/src给AL余数该AH 字将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src
CBW 将字节转换为字 CWD将字转换为字节
逻辑运算:
逻辑与:AND dst,src 逻辑或:OR dst,src 非:NOT dst
异或:XOR dst,src
测试:TEST dst,src(测试判断某些位知否同时为0)
移位指令
算术左移指令SAL dst, CL;移位位数 逻辑左移指令SHL dst ,CL;移位位数 算术右移指令:SAR dst ,CL;移位位数 逻辑右移指令:SHR dst,CL ;移位位数
循环移位指令:
循环左移指令:ROL dst,CL;移位位数 循环右移指令:ROR dst,CL;移位位数 带进位循环左移:RCL dst,CL;移位位数 带进位循环右移:RCR dst,CL;移位位数
串操作指令:
串传送指令:MOVS/W 串比较指令:CMPSB/W 串搜索指令:SCASB/W 取串指令:LODS/W 存串指令:STOSB/W
重复前缀指令:REP SOPR 重复执行REP指令后紧跟着的一个串操作指令,知直到CX寄
存器中的值为0 REPE/REPZ执行REPE/REPZ后紧跟的一个串操作指令,当相等、为0时重复,直到CX=0/ZF=0 REPNE/REPNZ 执行REPNE/REPNZ后紧跟的串操作指令当不为0、不相等时重复,直到CX=0/ZF=0
转移指令:
远程转移:JMP FAR PTR OPRD(IP=IP+16位移量) 近程转移:JMP NEAR PTR OPRD (IP=IP+8位移量) 段内间接转移:JMP reg16 JMP men16
(IP)←reg16或men16
段间间接转移:JMP DWORD PTR [BX+SI]
调用和返回指令:
段内直接调用:CALL dst(SP=SP-2,SP+1,IP指向SP,IP=IP+16
段内直接调用:CALL dst (同,同,EA指向IP) 段间直接调用:CALL dst(SP=SP-2,SP+1,CS指向SP,SP=SP-2,SP+1,IP指向SP,
偏移地址指向IP,段地址指向CS)
段间间接调用:CALL dst 段内返回:RET(IP=SP+1,SP,SP=SP+2) 段内带立即数返回:RET n
循环控制指令:
LOOP OPRD(CX=CX-1,若CX≠0则循环 LOOPNZ/LOOPE OPRD(CX=CX-1,若CX≠0ZF=0则循环)
LOOPZ/LOOPE OPRD 地址总线:AB(单向输出) 数据总线:DB(双向总线)
控制总线:CB(输出输入或双向)
4个16位数据寄存器:AX累加器.BX基址寄存器.CX计数寄存器.DX数据寄存器
高八位记作:AH.BH.CH.DH低八位ALBLCLDL
指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器 变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI目的变址寄存器
进位标志位:CF最高位 奇偶标志位:PF
低8位1的个数为偶时为1 辅助进位标志位:AF低4位向高4为有进位时
零标志位:ZF算术逻辑运算为零时为1 符号标志位:SF运算结果最高位为1时为1
溢出标志位:OF结果超出有符号数补码表示的范围时为1
跟踪标志位:TF单步中断方式逐条检查 方向标志位:DF
中断允许标志位:IF为1时CPU可以响应可屏蔽中断(INTR)请求
立即数寻址:MOV BL,5BH 寄存器寻址:MOV DS,AX
存储器寻址:
直接寻址:MOV AX,[2000H] 寄存器间接寻址:MOV AX,[BP]
操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中 默认DS为基址,在BP中默认SS为基址
寄存器相对寻址:MOV AX,COUNT[SI] 例:MOV BP:[DI+45H]
基址加变址寻址:MOV AX, [SI+BP]
相对基址加变址寻址指令 MOV AX, [SI+BP+1234H] 指令
数据传送指令MOV dst,src 交换指令:XCHG dst,src
查表指令:XLAT[表首址]DS:(BX+AL)给AL 堆栈传送指令:PUSH src 取偏移地址指令;LEA dst,src 指针送寄存器和DS:LDS dst,src 指针送寄存器和ES:LES dst,src
标志传送指令:LAHF SAHF PUSHF POPF 输入、输出指令:IN.OUT 加法指令:ADD dst,src
带进位加法指令:ADC dst,src (CF也要加) 加1指令:INC dst 减法指令:SUB dst,src
带借位减法指令:SBB dst,src(也要减CF)
减1指令:DEC src111 求补指令:NEG src (0减src) 比较指令:CMP dst,src(相减但不送回目的操作数,结果都不变)
乘法指令:MUL src 字节操作数:AL*src给AX 字操作数:AX*src给AX
带符号数乘法指令:IMUL src 字运算AX字节运算AL 除法指令:DIV src 字节将AX/src给AL余数该AH 字将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src
CBW 将字节转换为字 CWD将字转换为字节
逻辑运算:
逻辑与:AND dst,src 逻辑或:OR dst,src 非:NOT dst
异或:XOR dst,src
测试:TEST dst,src(测试判断某些位知否同时为0)
移位指令
算术左移指令SAL dst, CL;移位位数 逻辑左移指令SHL dst ,CL;移位位数 算术右移指令:SAR dst ,CL;移位位数 逻辑右移指令:SHR dst,CL ;移位位数
循环移位指令:
循环左移指令:ROL dst,CL;移位位数 循环右移指令:ROR dst,CL;移位位数 带进位循环左移:RCL dst,CL;移位位数 带进位循环右移:RCR dst,CL;移位位数
串操作指令:
串传送指令:MOVS/W 串比较指令:CMPSB/W 串搜索指令:SCASB/W 取串指令:LODS/W 存串指令:STOSB/W
重复前缀指令:REP SOPR 重复执行REP指令后紧跟着的一个串操作指令,知直到CX寄
存器中的值为0 REPE/REPZ执行REPE/REPZ后紧跟的一个串操作指令,当相等、为0时重复,直到CX=0/ZF=0 REPNE/REPNZ 执行REPNE/REPNZ后紧跟的串操作指令当不为0、不相等时重复,直到CX=0/ZF=0
转移指令:
远程转移:JMP FAR PTR OPRD(IP=IP+16位移量) 近程转移:JMP NEAR PTR OPRD (IP=IP+8位移量) 段内间接转移:JMP reg16 JMP men16
(IP)←reg16或men16
段间间接转移:JMP DWORD PTR [BX+SI]
调用和返回指令:
段内直接调用:CALL dst(SP=SP-2,SP+1,IP指向SP,IP=IP+16
段内直接调用:CALL dst (同,同,EA指向IP) 段间直接调用:CALL dst(SP=SP-2,SP+1,CS指向SP,SP=SP-2,SP+1,IP指向SP,
偏移地址指向IP,段地址指向CS)
段间间接调用:CALL dst 段内返回:RET(IP=SP+1,SP,SP=SP+2) 段内带立即数返回:RET n
循环控制指令:
LOOP OPRD(CX=CX-1,若CX≠0则循环 LOOPNZ/LOOPE OPRD(CX=CX-1,若CX≠0ZF=0则循环)
LOOPZ/LOOPE OPRD 地址总线:AB(单向输出) 数据总线:DB(双向总线)
控制总线:CB(输出输入或双向)
4个16位数据寄存器:AX累加器.BX基址寄存器.CX计数寄存器.DX数据寄存器
高八位记作:AH.BH.CH.DH低八位ALBLCLDL
指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器 变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI目的变址寄存器
进位标志位:CF最高位 奇偶标志位:PF
低8位1的个数为偶时为1 辅助进位标志位:AF低4位向高4为有进位时
零标志位:ZF算术逻辑运算为零时为1 符号标志位:SF运算结果最高位为1时为1
溢出标志位:OF结果超出有符号数补码表示的范围时为1
跟踪标志位:TF单步中断方式逐条检查 方向标志位:DF
中断允许标志位:IF为1时CPU可以响应可屏蔽中断(INTR)请求
立即数寻址:MOV BL,5BH 寄存器寻址:MOV DS,AX
存储器寻址:
直接寻址:MOV AX,[2000H]
寄存器间接寻址:MOV AX,[BP]
操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中 默认DS为基址,在BP中默认SS为基址
寄存器相对寻址:MOV AX,COUNT[SI] 例:MOV BP:[DI+45H]
基址加变址寻址:MOV AX, [SI+BP]
相对基址加变址寻址指令 MOV AX, [SI+BP+1234H] 指令
数据传送指令MOV dst,src 交换指令:XCHG dst,src
查表指令:XLAT[表首址]DS:(BX+AL)给AL 堆栈传送指令:PUSH src 取偏移地址指令;LEA dst,src 指针送寄存器和DS:LDS dst,src 指针送寄存器和ES:LES dst,src
标志传送指令:LAHF SAHF PUSHF POPF 输入、输出指令:IN.OUT 加法指令:ADD dst,src
带进位加法指令:ADC dst,src (CF也要加) 加1指令:INC dst 减法指令:SUB dst,src
带借位减法指令:SBB dst,src(也要减CF)
减1指令:DEC src111 求补指令:NEG src (0减src) 比较指令:CMP dst,src(相减但不送回目的操作数,结果都不变)
乘法指令:MUL src 字节操作数:AL*src给AX 字操作数:AX*src给AX
带符号数乘法指令:IMUL src 字运算AX字节运算AL 除法指令:DIV src 字节将AX/src给AL余数该AH 字将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src
CBW 将字节转换为字 CWD将字转换为字节
逻辑运算:
逻辑与:AND dst,src 逻辑或:OR dst,src 非:NOT dst
异或:XOR dst,src
测试:TEST dst,src(测试判断某些位知否同时为0)
移位指令
算术左移指令SAL dst, CL;移位位数 逻辑左移指令SHL dst ,CL;移位位数 算术右移指令:SAR dst ,CL;移位位数 逻辑右移指令:SHR dst,CL ;移位位数
循环移位指令:
循环左移指令:ROL dst,CL;移位位数 循环右移指令:ROR dst,CL;移位位数 带进位循环左移:RCL dst,CL;移位位数 带进位循环右移:RCR dst,CL;移位位数
串操作指令:
串传送指令:MOVS/W 串比较指令:CMPSB/W 串搜索指令:SCASB/W 取串指令:LODS/W 存串指令:STOSB/W
重复前缀指令:REP SOPR 重复执行REP指令后紧跟着的一个串操作指令,知直到CX寄
存器中的值为0 REPE/REPZ执行REPE/REPZ后紧跟的一个串操作指令,当相等、为0时重复,直到CX=0/ZF=0 REPNE/REPNZ 执行REPNE/REPNZ后紧跟的串操作指令当不为0、不相等时重复,直到CX=0/ZF=0
转移指令:
远程转移:JMP FAR PTR OPRD(IP=IP+16位移量) 近程转移:JMP NEAR PTR OPRD (IP=IP+8位移量) 段内间接转移:JMP reg16 JMP men16
(IP)←reg16或men16
段间间接转移:JMP DWORD PTR [BX+SI]
调用和返回指令:
段内直接调用:CALL dst(SP=SP-2,SP+1,IP指向SP,IP=IP+16
段内直接调用:CALL dst (同,同,EA指向IP) 段间直接调用:CALL dst(SP=SP-2,SP+1,CS指向SP,SP=SP-2,SP+1,IP指向SP,
偏移地址指向IP,段地址指向CS)
段间间接调用:CALL dst 段内返回:RET(IP=SP+1,SP,SP=SP+2) 段内带立即数返回:RET n
循环控制指令:
LOOP OPRD(CX=CX-1,若CX≠0则循环 LOOPNZ/LOOPE OPRD(CX=CX-1,若CX≠0ZF=0则循环)
LOOPZ/LOOPE OPRD