首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >2f在汇编程序中分支标记是什么意思?

2f在汇编程序中分支标记是什么意思?
EN

Stack Overflow用户
提问于 2017-09-05 12:43:44
回答 1查看 499关注 0票数 2

我试图理解汇编程序代码的一些片段:

代码语言:javascript
运行
复制
       ".syntax unified\n"
"1:\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
       " CMP %[SystemCoreClock],%[clock16MHz]\n"
       " BEQ.n 2f\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
       " NOP\n"
"2:\n"
       " SUBS %0, %0, #1\n"
       " BNE.n 1b\n"
       ".syntax divided\n"

当程序分支在一行中标注2时,"f“的含义是什么?

代码语言:javascript
运行
复制
" BEQ.n 2f\n"

"b“行分支的区别是什么?

代码语言:javascript
运行
复制
" BNE.n 1b\n"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-05 13:22:38

它是专门针对gnu汇编语言的一个懒惰的程序员捷径AFAIK。(汇编语言是由汇编程序定义的,读取汇编语言的程序有许多arm、mips、x86等汇编语言)

代码语言:javascript
运行
复制
1:
2:
    b 1b
    b 2b
    b 1f
    b 2f
2:
    b 1b
    b 1f
1:
    nop
    nop

组装后拆卸

代码语言:javascript
运行
复制
00000000 <.text>:
   0:   eafffffe    b   0 <.text>
   4:   eafffffd    b   0 <.text>
   8:   ea000002    b   18 <.text+0x18>
   c:   eaffffff    b   10 <.text+0x10>
  10:   eafffffa    b   0 <.text>
  14:   eaffffff    b   18 <.text+0x18>
  18:   e1a00000    nop         ; (mov r0, r0)
  1c:   e1a00000    nop         ; (mov r0, r0)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46055305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档