0


汇编指令汇总

  • 传送指令 - 通用传送指令 - MOV ——字节或字的传送指令 - MOV reg/mem,imm(无seg,立即数不能直接赋给段寄存器,且不能作为目的操作数(无法存储)以字母开头的常数要有前导0)- MOV reg/men/seg,reg(寄存器具有明确的字节和字类型,但任何变量使用前都要先定义)- MOV reg/seg,mem(不存在存储器向存储器的传送指令)- MOV reg/men,seg(无seg)- 代码段段寄存器(CS)不能作为目的操作数- SS没必要赋值,系统会默认指定- DS、ES的段基地址可以相同- 要记得 MOV AX,DATA[BX][SI],其中DATA作为变量时,是其偏移地址与BX、SI的内容相加,作为相对基址变址寻址- 图示 - 非法指令的主要现象 - 两个操作数的类型不一致- 无法确定是字节量还是字量操作(eg.立即数传给变量,要先定义变量(最好给出类型说明),否则无法确定;eg.立即数传给存储单元,要先类型说明,否则无法确定)- 两个操作数都是存储器(8086指令系统除串操作指令外,不允许两个操作数都是存储单元(存储单元操作数))- 段寄存器的操作有所限制- 要记得只有AX、BX、CX、DX才能分为H、L;且思维要严谨,DH要先清零,否则传送的数可能变了(以保证数的大小不变,只是位扩) - AX在CPU内部,不会出现在存储器,所以应该改为ES:[AX] - DX不能作为存储器操作数表达式(即不能作为寄存器间接寻址) - 堆栈操作指令 - 先进后出(FILO)、后进先出(LIFO),但可随机读取- 堆栈只有一个出/入口,即当前栈顶,用堆栈指针寄存器SP指定- 申请好存储空间后,SS指向最小偏移地址,SP(栈顶指针)指向指向最大的存储空间(存储时仍为小端方式)- 堆栈操作的单位为“字”- 堆栈在程序执行中,可以用来中间缓存或者存储段内调用/段间调用时的偏移地址/段地址+偏移地址- 堆栈指令中的操作数只能是寄存器或存储器操作数,不能是立即数- 堆栈操作遵循先进后出原则(SP),但可用存储器寻址方式(BP)随机存取堆栈中的数据- PUSH——入栈指令 - PUSH r16/m16/seg 即 SP⬅SP-2;SS:[SP]⬅r16/m16/seg- 记得SP先减2- SP指向当前最大的存储单元- 对字进行操作- 存放时为小端方式,但是先放高位再放低位,即进栈时SP-2- POP——出栈指令 - POP r16/m16/seg 即 r16/m16/seg⬅SS:[SP]; SP⬅SP+2- 记得先出栈再减2- 对字进行操作- 出栈指令把栈顶的一个字传送至指定的目的操作数- 不能编程执行 POP CS- XCHG——字节或字的交换指令 - XCHG reg reg/mem- XCHG mem reg- 交换的类型要相同,且不能在存储器与存储器之间对换数据- XLAT——字节的查表指令(对于既定的表进行查找) - 将BX指定的缓冲区中、AL指定的位移处的一个字节数据取出赋给AL(要注意:BX指定的为0,如果AL为3,是指0、1、2、3中的3)- 在主存中建立一个字节量表格,内含要转换成的目的代码- 表格首地址存放于BX,AL存放相对表格首地址的位移量- 记得,是将AL寄存器的内容转换成目标代码- 目的地址传送指令 - LEA——有效地址传送指令 - 将存储器操作数的有效地址送至指定的16位通用寄存器- 源操作数为操作数的有效地址(即存放操作数的存储单元的地址)- LEA r16,mem (等价于 MOV r16,OFFSET mem)- LDS——偏移地址及其数据段段地址传送指令 - LDS r16,mem- 从mem存储单元开始的4个连续存储单元中取出某变量的地址指针(共4个字节),将其前两个字节(即变量的偏移地址)传送到r16,后两个字节(即变量的段地址)传送到DS段寄存器中- 为32位操作指令- LES——偏移地址及其附加段段地址传送指令 - LES r16,mem- 从mem存储单元开始的4个连续存储单元中取出某变量的地址指针(共4个字节),将其前两个字节(即变量的偏移地址)传送到r16,后两个字节(即变量的段地址)传送到ES段寄存器中- 为32位操作指令- I/O传送指令 - I/O口地址为8位时,口地址为“立即数”- I/O口地址为16位时,口地址应存放在“DX”中,且不加方括号- IN/OUT指令,必须应用累加器AX/AL - IN——I/O操作的输入指令 - IN AX/AL,i8/DX- IN指令是将指定端口 i8/DX 中的内容输入到累加器AL/AX中- 只能传到AX/AL- i8表示8位端口号,DX中的内容为16位端口号- OUT——I/O操作的输出指令 - OUT i8/DX,AX/AL- OUT指令是将累加器AX/AL中的内容输出到指定端口i8/DX- 标志传送指令 - PUSHF——标志寄存器入栈指令 - 将16位标志寄存器F内容入栈保护- POPF——出栈至标志寄存器指令 - 将当前栈顶和次栈顶中的数据字弹出送回到标志寄存器F中- LAHF——SF、ZF、AF、PF、CF对位传送至AH(SF、ZF、、AF、、PF、、CF) - 将标志寄存器F的低字节(共包含5个状态标志位)传送到A寄存器中- SAHF——AH对位传送至SF、ZF、AF、PF、CF - 将AH寄存器内容传送到标志寄存器F的低字节- 对位传送

  • 算术运算类指令 - 注意:这类指令会根据运算结果影响状态标志,有时要利用某些标志才能得到正确的结果,使用时亚奥注意有关状态标志的变化- 加法运算 - 无符号数的加减法运算,计算小数点后的数的相加或相减时,用ADD或SUB;计算后,要带CF的ADC或SBB计算整数,逻辑要很清晰 - ADD——普通加法指令(目的⬅目的+源) - ADD dest,src- ADD指令使目的操作数加上源操作数,和的结果送到目的操作数- 注意,无论是有符号或无符号数运算,都会影响OF,只不过无符号数关注CF,有符号数关注OF - 注意对OF、SF、ZF、PF、CF的影响- ADC——带进位位加法指令(目的⬅源+目的+CF) - 注意:CF是指令执行前CF的标志- INC——加一指令(目的⬅目的+1) - 不影响CF标志,而ADD、ADC等会影响- INC reg/mem- 单操作数指令- AAA——非组合BCD码加法的加六修正指令 - 非组合BCD码➡Eg. 69H=(0000 0110 0000 1001)BCD=0609H- 字节操作- 隐含寄存器为AL,因此需要先将代调整的数,ADD或ADC后到AL(目的操作数),然后调整之后传到指定位置,且未组合BCD码要按每个十进制位计算- DAA——组合BCD码加法的加六修正指令 - 字节操作- 隐含寄存器为AL,因此需要先将代调整的数,ADD或ADC后到AL(目的操作数),然后调整之后传到指定位置,且未组合BCD码要按每个十进制位计算- 减法运算 - SUB——普通减法指令(目的⬅目的-源) - SUB dest,src- SUB指令使目的操作数减去源操作数,差的结果送到目的操作数- 注意对OF、SF、ZF、PF、CF的影响- SBB——带进位位减法指令(目的⬅目的-源-CF) - 注意:CF是指令执行前CF的标志- DEC——减一指令(目的⬅目的-1) - 不影响CF标志,而SUB、SBB等会影响- DEC reg/mem- 单操作数指令- NEG——(把操作数作为无符号数)求补指令 - NEG reg/mem 即 reg/mem⬅0-reg/mem- NEG指令对标志的影响与用零作减法的SUB指令一样- 单操作数指令- 把操作数作为无符号数- 若操作数为正数或无符号数,NEG指令是求与正数真值相等的负数的补码- 若操作数为有符号数或补码,NEG指令是求一负数的绝对值- CMP——比较指令(目的-源,只影响FLAGS寄存器) - 结果不回传目的,不影响两操作数的值- CMP dest,src- 比较指令通过减法运算影响状态标志(6个状态标志位),用于比较两个操作数的大小关系- 无符号数比较大小(若ZF=1,两数相等;若ZF=0,判断CF) - 有符号数比较大小(若ZF=1,两数相等;若ZF=0,判断SF、OF) - AAS——未组合BCD码的减法减六修正指令 - 字节操作- 隐含寄存器为AL,因此需要先将代调整的数,ADD或ADC后到AL(目的操作数),然后调整之后传到指定位置,且未组合BCD码要按每个十进制位计算- DAS——组合BCD码减法的减六修正指令 - 字节操作- 隐含寄存器为AL,因此需要先将代调整的数,ADD或ADC后到AL(目的操作数),然后调整之后传到指定位置,且未组合BCD码要按每个十进制位计算- 乘法运算 - MUL——无符号数乘法指令 - MUL reg/mem- (被乘数)隐含寄存器是AL(字节乘)与AX(字乘)- 乘数不能是立即数- 乘积存入AX(字节乘)和DX(字乘)- CF=OF=0 - 表示AL或AX中乘积有效- 表示AH或DX中的乘积为0- 注意:AH或DX要先清零- CF=OF=1 - 表示AX或DX:AX中的乘积均有效- IMUL——带符号数(整数)乘法指令 - 补码运算,最后结果也是补码- IMUL reg/mem- (被乘数)隐含寄存器是AL(字节乘)与AX(字乘)- 乘数不能是立即数- 乘积存入AX(字节乘)和DX(字乘)- CF=OF=0 - 表示AL或AX中乘积有效- 表示AH或DX中的乘积为0或全F(有符号数,负数符号位为1)- 注意:AH或DX要先清零- CF=OF=1 - 表示AX或DX:AX中的乘积均有效- 表示AH或DX中的乘积全0或全F- 计算过程分析 - AAM——未组合BCD码的乘法修正指令 - 隐含寄存器为AX- 只能够修正 未组合BCD码 字节乘法 的积- 在乘积之后修正- 除法运算 - DIV——无符号数除法指令 - DIV reg/mem- (被除数)隐含寄存器是AX(字节除)与DX:AX(字除)- 除数不能是立即数、- 商存入AL(字节除)与AX(字除)中- 余数存入AH(字节除)与DX(字除)中- 高余低商- 除法指令不影响标志寄存器FLAGS的状态标志- 除数为零或商超出累加器的容量,产生除法错中断,即0型中断- IDIV——带符号数除法指令 - IDIV reg/mem- (被除数)隐含寄存器是AX(字节除)与DX:AX(字除)- 除数不能是立即数、- 商存入AL(字节除)与AX(字除)中- 余数存入AH(字节除)与DX(字除)中- 高余低商- 除法指令不影响标志寄存器FLAGS的状态标志- 除数为零或商在补码范围之外,产生除法错中断,即0型中断- AAD——未组合BCD码的除法修正指令 - 隐含寄存器为AX- 只能够修正未组合BCD码字节除法的被除数- 在除法之前进行调整操作——将累加器AX中的2位非压缩型十进制的被除数调整为二进制数,保留在AL中- 位扩展指令 - CBW——带符号数“字节”扩展为“字”的指令- CWD——带符号数“字”扩展为“双字”的指令- CBW和CWD:为IDIV指令设置的符号扩展指令,用来扩展被除数字节/字为字/双字的符号,所扩充的高位字节/字部分均为低位的符号位。它们在使用时应安排在IDIV指令之前,执行结果对标志位没有影响。- 对DIV无符号数除法应该采用直接使高8位或高16位清0的方法,以获得倍长的被除数。- 位数加长,大小没变

  • 位操作类指令 - 以二进制位为基本单元进行数据的操作- 双操作数逻辑指令AND、OR、XOR和TEST设置CF=OF=0(固定为 0,结果不影响),根据结果设置SF、ZF和PF状态,而对AF未定义- 逻辑运算 - AND——按位“与”逻辑运算指令- OR——按位“或”逻辑运算指令- NOT——按位“非”逻辑运算指令 - 单操作数- 结果不影响标志位- XOR——按位“异或”逻辑运算指令- TEST——按位“位测试”(与逻辑)逻辑运算指令 - 对两个操作数执行逻辑与运算,结果并不送目的操作数,仅按AND指令影响标志- AND与TEST指令的关系,同SUB与CMP指令的关系一样- TEST指令是将字节/字操作数按位进行“与”运算- TEST指令不影响原操作数- TEST指令只影响标志寄存器FLAGS的状态标志- 要学会利用TEST指令 - 综合应用一 (记得加上符号位) - 综合应用二——AND可以用来清零;OR用来置1;XOR用来取反(与1异或) - 移位指令 - 移位指令的第一个操作数是指定的被移位的操作数,可以是寄存器或存储单元;后一个操作数表示移动的位数: - 该操作数为1,表示移动一位- 该操作数大于1,用CL寄存器值表示移位位数 (只能用CL表示)- 移位指令均影响标志寄存器FLAGS的“CF”标志位- 按照移入的位来设置进位标志CF,根据移位后的结果影响SF、ZF、PF- SAR是对带符号数操作,SHR是对无符号数操作 - 很好的例子!要学会分析和思考(记得AH先清零) - 算术移位 - SAL——按位“算术左移”运算指令 - SAL reg/mem,1/CL- 最低位补0,最高位进入CF- 左移一位相当于“x2”(最高有效位1未被移出前),移动8位后全部为0- SAR——按位“算术右移”运算指令 - SAR reg/mem,1/CL- 最高位不变(保持符号位不变),最低位进入CF- 逻辑移位 - SHL——按位“逻辑左移”运算指令 - SHL reg/mem,1/CL- 最低位补0,最高位进入CF- 左移一位相当于“x2”(最高有效位1未被移出前),移动8位后全部为0- SHR——按位“逻辑右移”运算指令 - SHR reg/mem,1/CL- 最高位补0,最低位进入CF- 右移一位相当于“➗2”,移动8位后全部为0- 循环移位指令 - 循环移位指令的操作数形式与移位指令相同,按指令功能设置进位标志CF(都会影响CF!不带进位循环移位也会影响),但不影响SF、ZF、PF、AF标志(要特别注意!)- 图示,注意移入CF的位 - 这道题要特别注意,要考虑全面,以及不能使用ROL和RCR是因为非压缩BCD码高4位是任意的,不一定全为0 - ROL——按位“循环左移”运算指令 - ROL reg/mem,1/CL- 不带进位循环左移- ROR——按位“循环右移”运算指令 - ROR reg/mem,1/CL- 不带进位循环右移- RCL——按位“带进位位循环左移”运算指令 - RCL reg/mem,1/CL- 带进位循环左移- RCR——按位“带进位位循环右移”运算指令 - RCR reg/mem,1/CL- 带进位循环右移

  • 串操作指令(默认的ES不能用超越前缀改变([DI]) - 特点 - 通常须用“SI”、“DI”、“CX”、“ES”寄存器- 应严格区分源(SI)与目的(DI)寄存器的使用- SI与DI地址自动改变的方向,由D的值控制(CLD即DF=0,递增;STD即DF=1,递减)CLD和STD只在串操作中起作用- CX作为计数器,特别是应用重复前缀指令时- B为字节操作、 W为字操作,无操作数指令- 运用(隐含条件:CX-1≠0;CX为隐含计数器,用于REP、LOOP、REPZ、REPNZ),如果只有跳转指令,要DEC CX,判断ZF跳转 - MOVS——串传送指令 - ES: [DI] ← DS:[SI]- MOVSB、MOVSW- 若要在同一个段内,可以将ES和DS赋相同的值- 单独使用MOVS时,要记得两个操作数都要加上同样的类型说明- LODS——读串操作指令 - AX/AL ← DS:[SI]- LODSB、LODSW- 对处理器而言,读是读入,写是写出;对存储器而言,读是读出,写是写入- 应用举例 - STOS——写串操作指令 - ES: [DI] ← AL/AX- STOSB、STOSW- 应用举例 - CMPS——串比较指令 - ES: [DI] — DS:[SI]- CMPSB、CMPSW- 按位一一进行比较- 应用举例 记得那个DEC - SCAS——串搜索指令 - AX/AL— ES: [DI]- 待查关键字放在AL/AX- SCASB、SCASW- 找到时,ZF=1- 应用举例 - 重复前缀 - REP——无条件重复前缀 - Eg.串传递未传递结束- REPE/PEPZ(ZF=1)——零条件重复前缀指令- REPNE/REPNZ——非零条件重复前缀指令 - Eg.比较串时,位置对应未不相等时结束比较

  • 寄存器的应用

  • 控制指令 - 控制转移类指令通过改变IP(和CS)值,实现程序执行顺序的改变(理解:IP是指向下一条要执行的指令)- 目标地址的寻址方式 - 相对寻址方式 - 指令代码中提供目的地址相对于当前IP的位移量,将要转移到的目的地址(转移后的IP值)就是当前IP值加上位移量- 用标号表达- 直接寻址方式 - 指令代码中提供目的逻辑地址,转移后的CS和IP值直接来自于指令操作码后的目的地址操作数- 用标号表达- 间接寻址方式 - 指令代码中指示寄存器或存储单元,目的地址从寄存器或存储单元中间接获得- 用寄存器或存储器操作数表示- 段内寻址 - 段内转移——近转移(near) - 在当前代码段64KB(±32KB)范围内转移- 不需要更改CS段地址,只要改变IP偏移地址(所以IP偏移地址入栈,出栈偏移地址)- 段内转移——短转移(short) - 转移范围可以用一个字节表达,在段内-128~+127范围的转移- 段间转移——远转移(far) - 从当前代码段跳转到另一个代码段,可以在1MB范围(20根地址总线)- 需要更改CS段地址和IP偏移地址- 目标地址必须用一个32位数表达,叫做32位远指针,它就是逻辑地址- 实际编程时,汇编程序会根据目标地址的属性,自动处理成短转移、近转移或远转移- 程序员可用操作符short、near ptr 或far ptr 强制成为需要的转移类型- JMP——无条件转移指令(记得看动画) - JMP label- 只要执行无条件转移指令JMP,就使程序转到指定的目标地址,从目标地址处开始执行指令- 操作数label是要转移到的目标地址(目的地址、转移地址)- 4种类型 - JMP label; IP⬅IP+位移量——段内转移、相对寻址- JMP r16/m16;IP⬅r16/m16——段内转移、间接寻址- JMP far ptr label;IP⬅偏移地址,CS⬅段地址——段间转移、直接寻址- JMP far ptr mem;IP⬅[mem],CS⬅[mem+2]——段间转移、间接寻址 - 寄存器只能16位,所以必须用存储器- Jcc——条件转移指令(标志位) - 6个标志位,OF、SF、ZF、PF、AF、CF- Jcc指令不影响标志,但要利用标志 - Jcc label——label是一个标号、一个8位位移量,表示Jcc指令后的那条指令的偏移地址,到目标指令的偏移地址的地址位移,label只支持短转移(-128+127)的相对寻址方式;IP←IP+8位位移量- ①判断单个标志位状态 - JZ/JE和JNE/JNE(E=Equal ,Z=zero)——利用零标志ZF,判断结果是否为零(或相等)- JS和JNS——利用符号标志SF,判断结果是正是负(常结合TEST使用)- JO/JNO——利用溢出标志OF,判断结果是否产生溢出- JP/JPE(even偶)和JNP/JPO(odd奇)——利用奇偶标志PF,判断结果中“1”的个数是偶是奇- JC/JNC——利用进位标志CF,判断结果是否进位或借位- 例题 - 要特别注意第三种方法,不能使用循环指令,因为循环指令不影响SF、ZF、PF标志位- 奇偶校验,要记得AND,OR,XOR都隐含条件:CF=OF=0- ②比较无符号数高低 - 无符号数的大小用高(Above)、低(Below)表示,需要利用CF确定高低、利用ZF标志确定相等(Equal)- 转移指令 - ③比较有符号数大小 - 判断有符号数的大(Greater)、小(Less),需要组合OF、SF标志、并利用ZF标志确定相等与否- 转移指令 - ④判断CX寄存器转移指令 - 格式:JCXZ 标号;转移条件:(CX)= 0- CALL——调用过程(子程序)指令 - 当主程序(调用程序)需要执行子程序时,采用CALL调用指令转移到该子程序的起始处执行- 子程序要有RET返回指令回到主程序继续执行- 转移指令有去无回,子程序调用需要返回,其中利用堆栈保存返回地址- 四种类型 - CALL label——段内调用、直接寻址 - 入栈偏移地址IP- SP←SP-2,SS:[SP]←IP- RET ;无参数段内返回- RET i16 ;有参数段内返回- 段内返回——出栈偏移地址IP- IP←SS:[SP], SP←SP+2- CALL r16/m16——段内调用、间接寻址 - 入栈偏移地址IP- SP←SP-2,SS:[SP]←IP- RET ;无参数段内返回- RET i16 ;有参数段内返回- 段内返回——出栈偏移地址IP- IP←SS:[SP], SP←SP+2- CALL label——段间调用、直接寻址 - 入栈偏移地址IP和段地址CS - ①SP←SP-2,SS:[SP]←CS- ②SP←SP-2,SS:[SP]←IP- RET ;无参数段间返回- RET i16 ;有参数段间返回- 段间返回——出栈偏移地址IP和段地址CS - ①IP←SS:[SP],SP←SP+2- ②CS←SS:[SP],SP←SP+2- CALL far ptr mem——段间调用、间接寻址(只能是mem,32位逻辑地址) - 入栈偏移地址IP和段地址CS - ①SP←SP-2,SS:[SP]←CS- ②SP←SP-2,SS:[SP]←IP- RET ;无参数段间返回- RET i16 ;有参数段间返回- 段间返回——出栈偏移地址IP和段地址CS - ①IP←SS:[SP],SP←SP+2- ②CS←SS:[SP],SP←SP+2- RET——过程(子程序)返回指令- JCXZ——判断CX寄存器转移指令(CX=0跳转) - 当CX=0时跳转- 可以用在作为循环的条件,每次循环都会执行 DEC CX ,之后判断CX=0?,然后跳转- 循环指令(短地址寻址) - CX作为隐含计数器,判断条件CX-1=0?- LOOP label——无条件循环指令 - 首先CX←CX-1;然后判断;若CX≠0,转移- LOOPE/LOOPZ——零条件循环指令 - 首先CX←CX-1;然后判断;若CX≠0,ZF=1, 转移- 循环结束条件:ZF=0或CX-1=0- LOOPNE/LOOPNZ——非零条件循环指令 - 首先CX←CX-1;然后判断;若CX≠0,ZF=0, 转移- 循环结束条件:ZF=1或CX-1=0- 中断指令 - 中断执行和返回时,SP和IP的状态 - ①中断执行时:a.当前FLAGS入栈 b.当前CS入栈 c.当前IP入栈- ②根据中断向量:(中断服务程序首地址)➡ IP;(中断服务程序段地址)➡ CS- ③中断返回时:a.IP出栈 b.CS出栈 c.FLAGS出栈- INT——中断指令 - 8086CPU支持256种中断,每种中断用一个编号(中断向量号)区别,前32个由Intel提供给系统用- INT 中断类型号(i8——0255)/INTO- 中断类型号的范围:0~255- 中断向量(矢量):中断类型号x4(提供中断入口)- INTO——溢出中断指令 - 无操作数指令,中断类型号=4- IRET——中断返回指令 - 先打断最后恢复,后打断最先恢复(堆栈压入和弹出地址)- 中断执行步骤 - ①在AH寄存器中设置系统功能调用号- ②在指定寄存器中设置入口参数- ③用中断调用指令( INT i8)执行功能调用- ④根据出口参数分析功能调用执行情况- INT 21H 功能号 - AH⬅功能号- 功能号的使用及功能、入口参数、出口参数(要特别注意出、入口参数) - 记得输出字符串,最后必须添加一个'$'结尾(并不显示)- ROM-BIOS功能调用 - 中断调用BIOS功能格式 - 入口寄存器与参数赋值- AH⬅功能号- INT 中断类型号- BIOS中断功能举例(熟悉 MOV AH,0EH INT 10H 通常BX=0)

  • 8086微处理器CPU控制指令 - 标志操作 - CLC——进位标志位置“0”指令- CMC——进位标志位置求反指令- STC——进位标志位置“1”指令- CLD——方向标志位置“0”指令(地址递增)- STD——方向标志位置“1”指令(地址递减)- CLI——中断标志位置“0”指令(禁止中断)- STI——中断标志位置“1”指令(允许中断)- 进位标志清零的方法举例 - ①CLC- ②XOR AX,AX- ③ADD AX,0- 操作微处理器 - HLT——微处理器暂停指令 - 暂停指令:CPU进入暂停状态- 用法 - ①控制主程序的结尾- ②控制主程序等待中断- ③控制程序中不能够用返回DOS中断方式- NOP—— 微处理器空操作指令、 - 空操作指令,等同于“xchg ax,ax” 指令- 一般用于延时 - ESC—— 微处理器脱离指令(命令协处理器)- WAIT——微处理器等待指令- LOCK——微处理器锁定指令(指令前缀,总线锁定前缀)

标签: 编辑器

本文转载自: https://blog.csdn.net/xht2403267701/article/details/125539809
版权归原作者 今天美美吃饭啦 所有, 如有侵权,请联系我们删除。

“汇编指令汇总”的评论:

还没有评论