如for语句的:sizeof(arr)/sizeof(arr[0])
4条回答 默认 最新
- 望晓天 2022-08-02 17:51关注
写了个demo , 搞成了汇编 你看一下吧 ,我只看到了一个sub
如果我没记错的,这个操作会因为编译器版本不同会有不同的优化#include <iostream> int main() { std::cout << "Hello, World!" << std::endl; int j = 3; for( int i = 0; i < j - 0; ++i){ std::cout<< "-----"<<std::endl; } return 0; }
__libc_start_main: push %r14 push %r13 push %r12 push %rbp mov %rcx,%rbp push %rbx sub $0x90,%rsp mov 0x3a491f(%rip),%rax ; 0x7ffff75b3d98 mov %rdi,0x18(%rsp) mov %esi,0x14(%rsp) mov %rdx,0x8(%rsp) test %rax,%rax je 0x7ffff720f55c ; <__libc_start_main+252> mov (%rax),%eax xor %edx,%edx test %eax,%eax sete %dl lea 0x3a4be0(%rip),%rax ; 0x7ffff75b4080 <__libc_multiple_libcs> test %r9,%r9 mov %edx,(%rax) je 0x7ffff720f4b3 ; <__libc_start_main+83> xor %edx,%edx xor %esi,%esi mov %r9,%rdi callq 0x7ffff7226f30 ; <__cxa_atexit_internal> mov 0x3a498e(%rip),%rdx ; 0x7ffff75b3e48 mov (%rdx),%eax and $0x2,%eax movslq %eax,%rbx test %rbx,%rbx jne 0x7ffff720f604 ; <__libc_start_main+420> test %rbp,%rbp je 0x7ffff720f4e5 ; <__libc_start_main+133> mov 0x3a49c1(%rip),%rax ; 0x7ffff75b3e98 mov 0x8(%rsp),%rsi mov 0x14(%rsp),%edi mov (%rax),%rdx callq *%rbp mov 0x3a495c(%rip),%rax ; 0x7ffff75b3e48 mov 0x178(%rax),%ebp test %ebp,%ebp jne 0x7ffff720f5c3 ; <__libc_start_main+355> test %rbx,%rbx jne 0x7ffff720f5a0 ; <__libc_start_main+320> lea 0x20(%rsp),%rdi callq 0x7ffff72231d0 ; <_setjmp> test %eax,%eax jne 0x7ffff720f563 ; <__libc_start_main+259> mov %fs:0x300,%rax mov %rax,0x68(%rsp) mov %fs:0x2f8,%rax mov %rax,0x70(%rsp) lea 0x20(%rsp),%rax mov %rax,%fs:0x300 mov 0x3a4956(%rip),%rax ; 0x7ffff75b3e98 mov 0x8(%rsp),%rsi mov 0x14(%rsp),%edi mov (%rax),%rdx mov 0x18(%rsp),%rax callq *%rax mov %eax,%edi callq 0x7ffff7226d20 ; <exit> xor %edx,%edx jmpq 0x7ffff720f499 ; <__libc_start_main+57> mov 0x3aaa26(%rip),%rax ; 0x7ffff75b9f90 <__libc_pthread_functions+400> ror $0x11,%rax xor %fs:0x30,%rax callq *%rax mov 0x3aaa00(%rip),%rax ; 0x7ffff75b9f80 <__libc_pthread_functions+384> ror $0x11,%rax xor %fs:0x30,%rax lock decl (%rax) sete %dl xor %eax,%eax test %dl,%dl jne 0x7ffff720f555 ; <__libc_start_main+245> xor %edi,%edi callq 0x7ffff72dc350 ; <__exit_thread> mov 0x8(%rsp),%rax mov 0x3a489c(%rip),%rdx ; 0x7ffff75b3e48 lea 0x16561c(%rip),%rdi ; 0x7ffff7374bcf mov (%rax),%rsi xor %eax,%eax callq *0x120(%rdx) jmpq 0x7ffff720f503 ; <__libc_start_main+163> mov 0x170(%rax),%r13 mov 0x3a47ff(%rip),%rax ; 0x7ffff75b3dd0 xor %r12d,%r12d mov (%rax),%r14 mov 0x18(%r13),%rax test %rax,%rax je 0x7ffff720f5f2 ; <__libc_start_main+402> mov %r12d,%edx add $0x46,%rdx shl $0x4,%rdx lea 0x8(%r14,%rdx,1),%rdi callq *%rax add $0x1,%r12d mov 0x40(%r13),%r13 cmp %r12d,%ebp jne 0x7ffff720f5d7 ; <__libc_start_main+375> jmpq 0x7ffff720f4fa ; <__libc_start_main+154> mov 0x8(%rsp),%rax lea 0x1655a5(%rip),%rdi ; 0x7ffff7374bb5 mov (%rax),%rsi xor %eax,%eax callq *0x120(%rdx) jmpq 0x7ffff720f4cb ; <__libc_start_main+107>
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 使用ESP8266连接阿里云出现问题
- ¥15 BP神经网络控制倒立摆
- ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
- ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
- ¥30 Unity接入微信SDK 无法开启摄像头
- ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
- ¥20 cad图纸,chx-3六轴码垛机器人
- ¥15 移动摄像头专网需要解vlan
- ¥20 access多表提取相同字段数据并合并
- ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角