当前位置: 首页 > news >正文

电子商务网站推广策略主要内容wordpress后台登陆logo

电子商务网站推广策略主要内容,wordpress后台登陆logo,wordpress音乐源码,网站建设 还有需求吗平时用的电脑都是X86的#xff0c;但是现在大家都在搞RISC-V#xff0c;计组也都开始以RISC-V作为示例#xff0c;所以专门回头来补一下X86的汇编#xff0c;方便平时使用。 寄存器register X86_64中一共有16个64位的通用寄存器#xff0c;分别为#xff1a; RAX, RBX,…平时用的电脑都是X86的但是现在大家都在搞RISC-V计组也都开始以RISC-V作为示例所以专门回头来补一下X86的汇编方便平时使用。 寄存器register X86_64中一共有16个64位的通用寄存器分别为 RAX, RBX, RCX,RDX, RBP, RSI,RDI, RSP, R8–R15 RAX用来存储函数返回值RSP用来作为堆栈指针寄存器RSP增大入站减小出栈。RBP栈帧指针标识当前栈帧的起始位置。其余的随便用 Callee save表示当出现函数调用的时候这些通用寄存器内的值由被调用者保存即在进入被调用函数后由被调用函数存储到它的栈里面并在返回前还原回去与之对应的Caller save则表示由调用者存储在进入调用函数前就要自己提前push到自己的栈里面 32位的X86中只有8个通用寄存器没有R8-R15 栈stack 指令 指令有两种形式一种是ATT的一种是Intel的我们用Intel风格的 opcode arg1agr2这是一段代码 int add(int a, int b){return ab; } int main(){int a 1;int b 2;int c add(a,b);return c-a-b; }下面是使用gcc编译得到的汇编代码 .file test_asm.c.text.globl add.type add, function add: .LFB0:.cfi_startprocendbr64pushq %rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq %rsp, %rbp.cfi_def_cfa_register 6movl %edi, -4(%rbp)movl %esi, -8(%rbp)movl -4(%rbp), %edxmovl -8(%rbp), %eaxaddl %edx, %eaxpopq %rbp.cfi_def_cfa 7, 8ret.cfi_endproc .LFE0:.size add, .-add.globl main.type main, function main: .LFB1:.cfi_startprocendbr64pushq %rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq %rsp, %rbp.cfi_def_cfa_register 6subq $16, %rspmovl $1, -12(%rbp)movl $2, -8(%rbp)movl -8(%rbp), %edxmovl -12(%rbp), %eaxmovl %edx, %esimovl %eax, %edicall addmovl %eax, -4(%rbp)movl -4(%rbp), %eaxsubl -12(%rbp), %eaxsubl -8(%rbp), %eaxleave.cfi_def_cfa 7, 8ret.cfi_endproc .LFE1:.size main, .-main.ident GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0.section .note.GNU-stack,,progbits.section .note.gnu.property,a.align 8.long 1f - 0f.long 4f - 1f.long 5 0:.string GNU 1:.align 8.long 0xc0000002.long 3f - 2f 2:.long 0x3 3:.align 8 4:下面是在X86_64下使用objdump得到的反汇编指令代码 test_asm.o: file format elf64-x86-64Disassembly of section .text:0000000000000000 add:0: f3 0f 1e fa endbr64 ; 引入指令序列断点并启用64位模式4: 55 push %rbp ; 保存调用者的栈帧指针到栈中如上文提到的Callee save5: 48 89 e5 mov %rsp,%rbp ; 设置当前栈帧指针为栈顶指针8: 89 7d fc mov %edi,-0x4(%rbp) ; 将第一个参数存储到相对于栈帧指针偏移为-4的位置b: 89 75 f8 mov %esi,-0x8(%rbp) ; 将第二个参数存储到相对于栈帧指针偏移为-8的位置e: 8b 55 fc mov -0x4(%rbp),%edx ; 将第一个参数加载到寄存器edx中11: 8b 45 f8 mov -0x8(%rbp),%eax ; 将第二个参数加载到寄存器eax中14: 01 d0 add %edx,%eax ; 执行加法操作将edx和eax的值相加结果存储在eax中16: 5d pop %rbp ; 恢复调用者的栈帧指针17: c3 retq ; 返回至调用者0000000000000018 main:18: f3 0f 1e fa endbr64 ; 引入指令序列断点并启用64位模式1c: 55 push %rbp ; 保存调用者的栈帧指针到栈中1d: 48 89 e5 mov %rsp,%rbp ; 设置当前栈帧指针为栈顶指针20: 48 83 ec 10 sub $0x10,%rsp ; 为局部变量分配16字节的栈空间24: c7 45 f4 01 00 00 00 movl $0x1,-0xc(%rbp) ; 将值1存储到相对于栈帧指针偏移为-12的位置2b: c7 45 f8 02 00 00 00 movl $0x2,-0x8(%rbp) ; 将值2存储到相对于栈帧指针偏移为-8的位置32: 8b 55 f8 mov -0x8(%rbp),%edx ; 将第二个参数加载到寄存器edx中35: 8b 45 f4 mov -0xc(%rbp),%eax ; 将第一个参数加载到寄存器eax中38: 89 d6 mov %edx,%esi ; 将edx的值复制给esi寄存器用作add函数的第二个参数3a: 89 c7 mov %eax,%edi ; 将eax的值复制给edi寄存器用作add函数的第一个参数3c: e8 00 00 00 00 callq 41 main0x29 ; 调用add函数41: 89 45 fc mov %eax,-0x4(%rbp) ; 将add函数返回值存储到相对于栈帧指针偏移为-4的位置44: 8b 45 fc mov -0x4(%rbp),%eax ; 将add函数返回值加载到寄存器eax中47: 2b 45 f4 sub -0xc(%rbp),%eax ; 执行减法操作将eax的值减去第一个参数的值4a: 2b 45 f8 sub -0x8(%rbp),%eax ; 执行减法操作将eax的值减去第二个参数的值4d: c9 leaveq ; 恢复栈帧并将栈顶指针设置为栈帧指针4e: c3 retq ; 返回至调用者 也确实是像大家说的X86的手册太太太长了X86为了向32位兼容搞出来的很多机制令人头大
http://www.zqtcl.cn/news/382067/

相关文章:

  • 北京网站排名制作图片点击就能跳转网站怎么做的
  • dw网站建设的数据库网站建设托管pfthost
  • 牛商网做网站成品网站1688入口
  • 涿鹿县建设局网站网络营销的定义和特点
  • 网站建设朋友圈怎么写深圳宝安区松岗
  • 苏州网站的建设哪个网站上做自媒体最好
  • 传送门网站是怎么做的wordpress seo标题
  • 曲靖 曲靖网站建设软件(app)开发视频一页网站怎么做
  • 互联网公司网站建设ppt模板下载wordpress 图片2m
  • 箱包官方网站模板平台开发软件
  • 佛山网站改版动漫视频制作软件
  • 易企互联网站建设创办公司需要多少资金
  • wordpress主题页脚添加联系信息百度seo优化排名软件
  • 深圳微信商城网站设计价格广东省自然资源厅事务中心
  • 云服务器做网站视屏工程建设最好的网站
  • 宁夏建设工程质量安全监督网站电商网站需求分析
  • wordpress函数教程十堰seo优化哪家公司好
  • 直播app开发哪家好东莞整站优化火速公司
  • 平江高端网站建设wordpress如何添加广告
  • 网站建设得多钱搜索引擎推广网站
  • 建立网站的流程多少钱网站建设不用备案的
  • 广州城市建设档案网站扬州工程建设招标网
  • 邦策网站建设dedecms医院网站wap模板(橙色)4512345
  • 阿里云空间可以做网站吗专业的传媒行业网站开发
  • 网站制作新报价橄榄树网站建设
  • 网站建设及服务合同小程序代码教程
  • 晋城网站建设公司淘宝店铺网站建设
  • 赣州网站建设流程上海重大新闻
  • html网站架设ui设计用的软件有哪些
  • 有没有做培养基的网站58同城淄博网站建设