2024年9月汇编指令在线查询(CCS5中怎么查看汇编指令的详细说明)

 更新时间:2024-09-21 07:53:40

  ⑴汇编指令在线查询(S中怎么查看汇编指令的详细说明

  ⑵S中怎么查看汇编指令的详细说明

  ⑶在S.中,可以通过help-》contents-》index查看具体汇编指令的详细说明

  ⑷汇编指令手册一、数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据..通用数据传送指令.MOV传送字或字节.MOVSX先符号扩展,再传送.MOVZX先零扩展,再传送.PUSH把字压入堆栈.POP把字弹出堆栈.PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP交换位寄存器里字节的顺序XCHG交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数)CMPXCHG比较并交换操作数.(第二个操作数必须为累加器AL/AX/EAX)XADD先交换再累加.(结果在第一个操作数里)XLAT字节查表转换.——BX指向一张字节的表的起点,AL为表的索引值(-,即-FFH);返回AL为查表结果.(-》AL).输入输出端口传送指令.INI/O端口输入.(语法:IN累加器,{端口号│DX})OUTI/O端口输出.(语法:OUT{端口号│DX},累加器)输入输出端口由立即方式指定时,其范围是-;由寄存器DX指定时,其范围是-..目的地址传送指令.LEA装入有效地址.例:LEADX,string;把偏移地址存到DX.LDS传送目标指针,把指针内容装入DS.例:LDSSI,string;把段地址:偏移地址存到DS:SI.LES传送目标指针,把指针内容装入ES.例:LESDI,string;把段地址:偏移地址存到ES:DI.LFS传送目标指针,把指针内容装入FS.例:LFSDI,string;把段地址:偏移地址存到FS:DI.LGS传送目标指针,把指针内容装入GS.例:LGSDI,string;把段地址:偏移地址存到GS:DI.LSS传送目标指针,把指针内容装入SS.例:LSSDI,string;把段地址:偏移地址存到SS:DI..标志传送指令.LAHF标志寄存器传送,把标志装入AH.SAHF标志寄存器传送,把AH内容装入标志寄存器.PUSHF标志入栈.POPF标志出栈.PUSHD位标志入栈.POPD位标志出栈.二、算术运算指令———————————————————————————————————————ADD加法.ADC带进位加法.INC加.AAA加法的ASCII码调整.DAA加法的十进制调整.SUB减法.SBB带借位减法.DEC减.NEC求反(以减之).CMP比较.(两操作数作减法,仅修改标志位,不回送结果).AAS减法的ASCII码调整.DAS减法的十进制调整.MUL无符号乘法.IMUL整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),AAM乘法的ASCII码调整.DIV无符号除法.IDIV整数除法.以上两条,结果回送:商回送AL,余数回送AH,(字节运算);或商回送AX,余数回送DX,(字运算).AAD除法的ASCII码调整.CBW字节转换为字.(把AL中字节的符号扩展到AH中去)CWD字转换为双字.(把AX中的字的符号扩展到DX中去)CWDE字转换为双字.(把AX中的字符号扩展到EAX中去)CDQ双字扩展.(把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令———————————————————————————————————————AND与运算.OR或运算.XOR异或运算.NOT取反.TEST测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL逻辑左移.SAL算术左移.(=SHL)SHR逻辑右移.SAR算术右移.(=SHR)ROL循环左移.ROR循环右移.RCL通过进位的循环左移.RCR通过进位的循环右移.以上八种移位指令,其移位次数可达次.移位一次时,可直接用操作码.如SHLAX,.移位》次时,则由寄存器CL给出移位次数.如MOVCL,SHLAX,CL四、串指令———————————————————————————————————————DS:SI源串段寄存器:源串变址.ES:DI目标串段寄存器:目标串变址.CX重复次数计数器.AL/AX扫描值.D标志表示重复操作中SI和DI应自动增量;表示应自动减量.Z标志用来控制扫描或比较操作的结束.MOVS串传送.(MOVSB传送字符.MOVSW传送字.MOVSD传送双字.)CMPS串比较.(CMPSB比较字符.CMPSW比较字.)SCAS串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS装入串.把源串中的元素(字或字节)逐一装入AL或AX中.(LODSB传送字符.LODSW传送字.LODSD传送双字.)STOS保存串.是LODS的逆过程.REP当CX/ECX《》时重复.REPE/REPZ当ZF=或比较结果相等,且CX/ECX《》时重复.REPNE/REPNZ当ZF=或比较结果不相等,且CX/ECX《》时重复.REPC当CF=且CX/ECX《》时重复.REPNC当CF=且CX/ECX《》时重复.五、程序转移指令———————————————————————————————————————》无条件转移指令(长转移)JMP无条件转移指令CALL过程调用RET/RETF过程返回.》条件转移指令(短转移,-到+的距离内)(当且仅当(SFXOROF)=时,OP《OP)JA/JNBE不小于或不等于时转移.JAE/JNB大于或等于转移.JB/JNAE小于转移.JBE/JNA小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE大于转移.JGE/JNL大于或等于转移.JL/JNGE小于转移.JLE/JNG小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ等于转移.JNE/JNZ不等于时转移.JC有进位时转移.JNC无进位时转移.JNO不溢出时转移.JNP/JPO奇偶性为奇数时转移.JNS符号位为““时转移.JO溢出转移.JP/JPE奇偶性为偶数时转移.JS符号位为““时转移.》循环控制指令(短转移)LOOPCX不为零时循环.LOOPE/LOOPZCX不为零且标志Z=时循环.LOOPNE/LOOPNZCX不为零且标志Z=时循环.JCXZCX为零时转移.JECXZECX为零时转移.》中断指令INT中断指令INTO溢出中断IRET中断返回》处理器控制指令HLT处理器暂停,直到出现中断或复位信号才继续.WAIT当芯片引线TEST为高电平时使CPU进入等待状态.ESC转换到外处理器.LOCK封锁总线.NOP空操作.STC置进位标志位.CLC清进位标志位.CMC进位标志取反.STD置方向标志位.CLD清方向标志位.STI置中断允许位.CLI清中断允许位.六、伪指令———————————————————————————————————————DW定义字(字节).PROC定义过程.ENDP过程结束.SEGMENT定义段.ASSUME建立段寄存器寻址.ENDS段结束.END程序结束.

  ⑸JB是指判断位变量转移指令,JA(jumpabove大于则转移到目标指令执行。

  ⑹JBP.,L意思就是说判断P.的值是不是“”如果是就跳转到L程序执行,如果不是就顺序执行下一条指令。

  ⑺JNAE:jumpnotaboveandequal低于,即不高于且不等于则转移,但执行这条语句之前先用CMP来比较个无符号数,CMP比较无符号数后影响的是CF,所以JB应该是通过CF来判断的(注意:无符号数的比较在这里用高于和低于,有符号数的比较在这里用大于小于。

  ⑻任何一种微处理器(CPU在设计时,就已规定好自己特定的指令系统,这种指令系统的功能也就决定了由该微处理器构成的计算机系统及其基本功能。指令系统中所设计的每条指令都对应着微处理器要完成的一种规定功能操作,即这些指令功能的实现都是由微处理器中的物理器件完成的。

  ⑼要使计算机完成一个完整的任务,就需要执行一组指令,这组指令通常称为程序。计算机能够执行的各种不同指令的集合就称为处理器(CPU的指令系统。

  ⑽以上内容参考:百度百科-汇编指令

  ⑾汇编语言的几个简单指令,并附上中文解释

  ⑿常用汇编指令:MOV指令为双操作数指令,两个操作数中必须有一个是寄存器.MOVDST,SRC//Byte/Word执行操作:dst=src.目的数可以是通用寄存器,存储单元和段寄存器(但不允许用CS段寄存器)..立即数不能直接送段寄存器.不允许在两个存储单元直接传送数据.不允许在两个段寄存器间直接传送信息PUSH入栈指令及POP出栈指令:堆栈操作是以“后进先出“的方式进行数据操作.PUSHSRC//Word入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器.入栈时高位字节先入栈,低位字节后入栈.POPDST//Word出栈操作数除不允许用立即数和CS段寄存器外,可以为通用寄存器,段寄存器和存储器.执行POPSS指令后,堆栈区在存储区的位置要改变.执行POPSP指令后,栈顶的位置要改变.XCHG(eXCHanG)交换指令:将两操作数值交换.XCHGOPR,OPR//Byte/Word执行操作:Tmp=OPROPR=OPROPR=Tmp.必须有一个操作数是在寄存器中.不能与段寄存器交换数据.存储器与存储器之间不能交换数据.XLAT(TRANSLATE)换码指令:把一种代码转换为另一种代码.XLAT(OPR可选)//Byte执行操作:AL=(BX+AL)指令执行时只使用预先已存入BX中的表格首地址,执行后,AL中内容则是所要转换的代码.LEA(LoadEffectiveAddress)有效地址传送寄存器指令LEAREG,SRC//指令把源操作数SRC的有效地址送到指定的寄存器中.执行操作:REG=EAsrc注:SRC只能是各种寻址方式的存储器操作数,REG只能是位寄存器MOVBX,OFFSETOPER_ONE等价于LEABX,OPER_ONEMOVSP,//将BX的内容作为存储器有效地址送入SP中LDS(LoadDSwithpointer)指针送寄存器和DS指令LDSREG,SRC//常指定SI寄存器。执行操作:REG=(SRC),DS=(SRC+)//将SRC指出的前二个存储单元的内容送入指令中指定的寄存器中,后二个存储单元送入DS段寄存器中。

  ⒀S中怎么查看汇编指令的详细说明

  ⒁在dos环境中,执行debug(程序).exer命令查看寄存器t命令单步跟踪g命令执行到某条指令地址u命令反汇编d命令查看数据?看帮助

  ⒂MOV?C,?bit??;bit?可直接寻址位C←(bit)

  ⒃MOV?bit,C??;C??进位位(bit)←C二、位变量修改指令:

  ⒄CLR??C?????;将C=

  ⒅CPL??C?????;将C求反再存入C

  ⒆CPL??bit?????;将bit求反再存入bit

  ⒇SETB?C?????;将C=

  ⒈SETB?bit?????;(bit)←三、位变量逻辑指令:

  ⒉ANL?C,?bit??ANL?C,?bit??ORL?C,?bit?ORL?C,?bit

  ⒊汇编指令是汇编语言中使用的一些操作符和助记符,还包括一些伪指令(如assume,end)。用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。

  ⒋MOV传送字或字节;

  ⒌MOVSX先符号扩展,再传送;

  ⒍MOVZX先零扩展,再传送;

  ⒎PUSH把字压入堆栈;

  ⒏POP把字弹出堆栈;

  ⒐PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈;

  ⒑POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈;

  ⒒PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈;

  ⒓POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈;

  ⒔BSWAP交换位寄存器里字节的顺序;

  ⒕XCHG交换字或字节(至少有一个操作数为寄存器,段寄存器不可作为操作数);

  ⒖CMPXCHG比较并交换操作数(第二个操作数必须为累加器AL/AX/EAX);

  ⒗XADD先交换再累加(结果在第一个操作数里);

  ⒘XLAT字节查表转换;

  ⒙BX指向一张字节的表的起点,AL为表的索引值(-,即-FFH);

  ⒚返回AL为查表结果。(-》AL)

  ⒛汇编中的常见指令有哪些

  汇编语言指令集汇编指令是汇编语言中使用的一些操作符(如mov,inc,loop)和助记符,还包括一些伪指令(如assume,end)。用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。一、数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。.通用数据传送指令MOV传送字或字节.MOVSX先符号扩展,再传送.MOVZX先零扩展,再传送.PUSH把字压入堆栈.POP把字弹出堆栈.PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP交换位寄存器里字节的顺序XCHG交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数)CMPXCHG比较并交换操作数.(第二个操作数必须为累加器AL/AX/EAX)XADD先交换再累加.(结果在第一个操作数里)XLAT字节查表转换.──BX指向一张字节的表的起点,AL为表的索引值(-,即-FFH);返回AL为查表结果.(-》AL).输入输出端口传送指令.INI/O端口输入.(语法:IN累加器,{端口号│DX})OUTI/O端口输出.(语法:OUT{端口号│DX},累加器)输入输出端口由立即方式指定时,其范围是-;由寄存器DX指定时,其范围是-..目的地址传送指令.LEA装入有效地址.例:LEADX,string;把偏移地址存到DX.LDS传送目标指针,把指针内容装入DS.例:LDSSI,string;把段地址:偏移地址存到DS:SI.LES传送目标指针,把指针内容装入ES.例:LESDI,string;把段地址:偏移地址存到ES:DI.LFS传送目标指针,把指针内容装入FS.例:LFSDI,string;把段地址:偏移地址存到FS:DI.LGS传送目标指针,把指针内容装入GS.例:LGSDI,string;把段地址:偏移地址存到GS:DI.LSS传送目标指针,把指针内容装入SS.例:LSSDI,string;把段地址:偏移地址存到SS:DI..标志传送指令.LAHF标志寄存器传送,把标志装入AH.SAHF标志寄存器传送,把AH内容装入标志寄存器.PUSHF标志入栈.POPF标志出栈.PUSHD位标志入栈.POPD位标志出栈.二、算术运算指令ADD加法.ADC带进位加法.INC加.AAA加法的ASCII码调整.DAA加法的十进制调整.SUB减法.SBB带借位减法.DEC减.NEC求反(以减之).CMP比较.(两操作数作减法,仅修改标志位,不回送结果).AAS减法的ASCII码调整.DAS减法的十进制调整.MUL无符号乘法.IMUL整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),AAM乘法的ASCII码调整.DIV无符号除法.IDIV整数除法.以上两条,结果回送:商回送AL,余数回送AH,(字节运算);或商回送AX,余数回送DX,(字运算).AAD除法的ASCII码调整.CBW字节转换为字.(把AL中字节的符号扩展到AH中去)CWD字转换为双字.(把AX中的字的符号扩展到DX中去)CWDE字转换为双字.(把AX中的字符号扩展到EAX中去)CDQ双字扩展.(把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令AND与运算.or或运算.XOR异或运算.NOT取反.TEST测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL逻辑左移.SAL算术左移.(=SHL)SHR逻辑右移.SAR算术右移.(=SHR)ROL循环左移.ROR循环右移.RCL通过进位的循环左移.RCR通过进位的循环右移.以上八种移位指令,其移位次数可达次.移位一次时,可直接用操作码.如SHLAX,.移位》次时,则由寄存器CL给出移位次数.如MOVCL,SHLAX,CL四、串指令DS:SI源串段寄存器:源串变址.ES:DI目标串段寄存器:目标串变址.CX重复次数计数器.AL/AX扫描值.D标志表示重复操作中SI和DI应自动增量;表示应自动减量.Z标志用来控制扫描或比较操作的结束.MOVS串传送.(MOVSB传送字符.MOVSW传送字.MOVSD传送双字.)CMPS串比较.(CMPSB比较字符.CMPSW比较字.)SCAS串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS装入串.把源串中的元素(字或字节)逐一装入AL或AX中.(LODSB传送字符.LODSW传送字.LODSD传送双字.)STOS保存串.是LODS的逆过程.REP当CX/ECX《》时重复.REPE/REPZ当ZF=或比较结果相等,且CX/ECX《》时重复.REPNE/REPNZ当ZF=或比较结果不相等,且CX/ECX《》时重复.REPC当CF=且CX/ECX《》时重复.REPNC当CF=且CX/ECX《》时重复.五、程序转移指令》无条件转移指令(长转移)JMP无条件转移指令CALL过程调用RET/RETF过程返回.》条件转移指令(短转移,-到+的距离内)(当且仅当(SFXOROF)=时,OP《OP)JA/JNBE不小于或不等于时转移.JAE/JNB大于或等于转移.JB/JNAE小于转移.JBE/JNA小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE大于转移.JGE/JNL大于或等于转移.JL/JNGE小于转移.JLE/JNG小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ等于转移.JNE/JNZ不等于时转移.JC有进位时转移.JNC无进位时转移.JNO不溢出时转移.JNP/JPO奇偶性为奇数时转移.JNS符号位为““时转移.JO溢出转移.JP/JPE奇偶性为偶数时转移.JS符号位为““时转移.》循环控制指令(短转移)LOOPCX不为零时循环.LOOPE/LOOPZCX不为零且标志Z=时循环.LOOPNE/LOOPNZCX不为零且标志Z=时循环.JCXZCX为零时转移.JECXZECX为零时转移.》中断指令INT中断指令INTO溢出中断IRET中断返回》处理器控制指令HLT处理器暂停,直到出现中断或复位信号才继续.WAIT当芯片引线TEST为高电平时使CPU进入等待状态.ESC转换到外处理器.LOCK封锁总线.NOP空操作.STC置进位标志位.CLC清进位标志位.CMC进位标志取反.STD置方向标志位.CLD清方向标志位.STI置中断允许位.CLI清中断允许位.六、伪指令DW定义字(字节).PROC定义过程.ENDP过程结束.SEGMENT定义段.ASSUME建立段寄存器寻址.ENDS段结束.END程序结束.七、处理机控制指令:标志处理指令CLC(进位位置指令CMC(进位位求反指令STC(进位位置为指令CLD(方向标志置指令STD(方向标志位置指令CLI(中断标志置指令STI(中断标志置指令NOP(无操作HLT(停机WAIT(等待ESC(换码LOCK(封锁

  汇编查询指令时什么,假如你想查询寄存器eax的值该怎么查

  你的意思是想有一个很方便的汇编IDE,然后在运行的时候可以方便的打断点,并且可以随时查看各个寄存器的值。如果你写的是位的DOS汇编代码,那么就用系统的DEBUG,这是第一种方法。如果你觉得DEBUG界面不友好。第二种方法就是使用CodeView这个汇编IDE。可以百度,自己去搜就行了。如果你准备写Win,那么可以使用RadAsm这个软件,里面自带的VKDebug和第三方插件OllyDbg(这是一款很牛X的位调试器,MMX,FPU均可以查看。如果你不会用,就看看csdn里的一个人叫jhkdiy的博客,上面讲的很详细的!

  你做的是-DAT,不是DAT-原因是:“查询到汇编指令SUBA,R解释为R-A赋予A”这是错的,应当是A-R赋予A

  OD工具如何查找特定的汇编指令如:MOVedi,edi这样的

  所有指令序列查找范围是当前CPU窗口所在的内存段。Ctrl+G,然后输入,回车,然后你再找你先得跳到你要找的代码所在的内存段,EXE是从开始的,如果是DLL的话,得按Alt+E,查看模块的基址,然后跳到基址之后再查找

您可能感兴趣的文章:

相关文章