首页 > 编程语言 >汇编-标号

汇编-标号

时间:2023-11-28 10:35:58浏览次数:38  
标签:标号 汇编 定义 编译器 指令 跳转 子程序

 

 

1.标号的定义 

当在程序中使用一条跳转指令的时候,可以用标号来表示跳转的目的地,编译器在编译的时候会把它替换成地址,标号既可以定义在目的指令同一行的头部,也可以在目的指令前行单独用一行定义,标号定义的格式是:
标号名:目的指令   ;方法1

标号名::目的指令     ; 方法2

常用的方法是使用方法1(标号后跟一个冒号【局部标号】),这时标号的作用域是当前的子程序,在单个

子程序中的标号不能同名,否则编译器不知该用哪个地址,但在不同的子程序中可以有相同名称的标号,这意味着不能从一个子程序中用跳转指令跳到另一个子程序中。

需要从一个子程序中用跳转指令跳到另一个子程序中的标号时,可以用方法2(标号后跟两个冒号【全局标号】)来定义,这时标号的作用域是整个程序,对任何其他子程序都是可见的

 

 

2.MASM中的@@

当用@@做标号时,可以用@F和@B来引用它,@F表示本条指令后的第一个@@标号,@B表示本条指令前的第一个@@标号,程序中可以有多个@@标号,但@B和@F只寻找匹配最近的一个

 

 

 

 

 

 

 

 

 

标签:标号,汇编,定义,编译器,指令,跳转,子程序
From: https://www.cnblogs.com/liming19680104/p/17861298.html

相关文章

  • 汇编-MessageBoxA消息框
     .386.modelflat,stdcall.stack4096ExitProcessPROTO,dwExitCode:DWORDMessageBoxAPROTO:DWORD,:DWORD,:DWORD,:DWORD.datalptextBYTE"消息",0lpcaptionBYTE"标题",0.codemainPROCinvokeMessageBoxA,0,OFFSETlptext,OFFSET......
  • 汇编div的注意
    无符号除法32位模式下,DIV(无符号除法)指令执行8位、16位和32位无符号数除法,结果以余数和商的方式表现。格式如下:DIV8位寄存器或内存DIV16位寄存器或内存DIV32位寄存器或内存被除数除数商余数AXreg/mem8ALAHDX:AXreg/mem16AXDXEDX:EAXreg/mem32EAXEDX根据以上表格可......
  • 在visual studio反汇编得出的函数之间的一些管旭
    非裸函数执行过程002018D1push3002018D3push2002018D5push1//将三个数压入栈中002018D7callstd::basic_ostreamchar,std::char_traits<char>::sentry::sentry(0201497h)002018DCaddesp,0Ch//ebp表示栈底,esp表示栈顶,前面三个数将esp减去了0x0C,现在需要加上0......
  • 汇编-MUL和IMUL乘法
    32位模式下整数乘法可以实现32、16或8位的操作,64位下还可以使用64位操作数。MUL执行无符号乘法,IMUL执行有符号乘法MUL:无符号数乘法32位模式下,MUL(无符号数乘法)指令有三种类型:执行8位操作数与AL寄存器的乘法;执行16位操作数与AX寄存器的乘法;执行32位操作数与EAX寄......
  • Win10 添加或删除功能时报错:0x80073701,找不到引用的汇编 (ERROR_SXS_ASSEMBLY_MISSING
    问题描述:当通过控制面板或DISM命令或PowerShell命令Enable-WindowsOptionalFeature修改Windows功能时,可能会遇到此报错,导致功能修改失败。关于这个问题的来源,英文版的错误信息很明确:ERROR_SXS_ASSEMBLY_MISSING,有SXS组件找不到,中文机翻痕迹明显,压根看不懂是啥意思。如果你是......
  • 汇编-PTR指针
            ......
  • 汇编-JMP无条件转移
    JMP指令无条件跳转到目的地址,该地址用代码标号来标识,并被汇编器转换为偏移量。语法如下所示:        ......
  • 【Java基础】while循环的标号
    需求:学生管理系统的菜单有5个操作选项:1.添加学生、2.删除学生、3.修改学生、4.查看学生、5.退出;进入系统后操作选项会循环给出,但当输入5触发退出时循环结束。实现:给循环添加标号,在break后添加循环标号指示需要结束的循环学生管理系统的菜单初始化代码publicclassStuMan......
  • 汇编-LABEL插入标号
     LABEL伪指令可以插入一个标号,并定义它的大小属性,但不为这个标号分配存储空间。LABEL可以使用所有的标准大小属性,如BYTE、WORD、DWORD、QWORD或TBYTE。LABEL通常的用法是,为在数据段中定义的下一个变量提供另一个名称和大小属性.386.modelflat,stdcall.stack4096E......
  • 3.6 Windows驱动开发:内核进程汇编与反汇编
    在笔者上一篇文章《内核MDL读写进程内存》简单介绍了如何通过MDL映射的方式实现进程读写操作,本章将通过如上案例实现远程进程反汇编功能,此类功能也是ARK工具中最常见的功能之一,通常此类功能的实现分为两部分,内核部分只负责读写字节集,应用层部分则配合反汇编引擎对字节集进行解码,此......