汇编-标号

 

 

1.全局标号和局部标号 

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

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

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

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

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

 

 

2.MASM中的@@

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

复制代码
.386
.model flat,stdcall
.stack 4096


ExitProcess PROTO,dwExitCode:DWORD

.data


.code
main PROC
    
    mov ecx,10
    mov eax,0
 @@:
    add eax,2
    loop @B  ;@B表示本条指令前的第一个@@标号



    INVOKE ExitProcess,0
main ENDP
END  main
复制代码

 

 

 

 

 

posted @   天子骄龙  阅读(140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2022-11-28 MFC-SetFocus设置焦点
2022-11-28 MFC-事件
2021-11-28 opencv-VideoCapture视频和摄像头读写
2021-11-28 opencv-行列式按行(列)展开
点击右上角即可分享
微信分享提示

目录导航