- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
变量定义格式 变量名:变量定义命令 初值表 变量名,是用户自定义的标识符,表示初值表首元素的地址 变量定义命令为变量申请固定长度的存储空间,并可以同时将相应的存储单元初始化 初值表是用逗号分隔的参数 变量定义命令表 命 令 数 据 类 型 .ascii 文本字符串 .asciz/.string 以0结尾的文本字符串 .byte 8位字节变量 .short/.word/.hword 16位短字变量 .long/.int 32位长字变量 .quad 64位8字节变量 .octa 128位16字节变量 .single/.float 32位单精度浮点数据变量 .double 64位双精度浮点数据变量 变量定义举例 .section .data msg: .ascii assembly language var: .long 10,20,30 例 3-3分析以下程序段每条指令执行的结果 .section .data msg: .ascii assembly language .equ len1,.-msg var: .long 10,20, 30 len2=(.-var)/4 .section .text .globl _start _start: movl $len1,%eax movl $len2,%ebx movl var,%ecx movl $var,%edx 3.2.3 bss 段 bss段中定义数据元素,无须声明特定的数据类型,只要声明所需保留的内存单元的字节数即可。 在bss段中声明的数据元素使用零(或者null)作为初始值,这些数据元素常用作汇编语言程序中的缓冲区。 bss段定义数据的格式 .comm symbol,length .lcomm symbol,length symbol是指向内存区域的标签 length是内存区域中所需保留的字节数量 声明未初始化的数据的公用、全局的主存区域 声明未初始化的数据的局部使用的主存区域 bss段中定义数据的特点 因为不使用程序数据初始化bss段中声明的数据区域,所以在bss段中声明的内存区域被保留在运行时使用,不包含在最终的可执行程序中 在数据段中定义数据必须包含在可执行程序中,因为必须使用特定的值初始化它 对比举例 #bsstest1.s .section .text .globl _start _start: movl $1,%eax movl $0,%ebx int $0x80 这是一个没有定义数据的程序,对其进行汇编连接,查看所生成的可执行文件的长度是660字节 #bsstest2.s .section .bss .lcomm buffer,1000 .section .text .globl _start _start: movl $1,%eax movl $0,%ebx int $0x80 这是一个定义了bss段的程序,对其进行汇编连接,查看所生成的可执行文件的长度是683字节 #bsstest3.s .section .data buffer: .fill 1000 .section .text .globl _start _start: movl $1,%eax movl $0,%ebx int $0x80 对其进行汇编连接,查看所生成的可执行文件的长度是1683字节。 3.3数据寻址方式 指令的操作数需要通过地址指示,通过地址才能查找到数据本身,这就是数据寻址方式 (Data-addressing Mode) 除外设数据外的寻址方式有3类: 1用常量表达的具体数值(立即数寻址) 2 用寄存器名表示其中内容(寄存器寻址) 3 用存储器地址代表保存的数据(存储器寻址) 3.3.1 立即数寻址 操作数用常量形式直接表达,从指令代码中立即得到,被称为立即数 立即数寻址方式常用来给寄存器或存储单元赋值 立即数举例 例3-4 指令movl $0%eax 例3-5 movl $0%eax movw $100,%ax movb $0%al movl $1,var #var是32位的整型变量 movb $A,%al movl $len,%eax #len是常量 movl $var,%eax 3.3.2 寄存器寻址 操作数存放在处理器的内部寄存器中,在指令中用寄存器名表示它的内容 操作数存放在寄存器中,不需要访问存储器,因而指令具有最快的
您可能关注的文档
最近下载
- 沸石转轮 RTO设计方案.docx VIP
- (完整版)高标准农田建设施工组织设计.pdf VIP
- 江苏省南京市2026届高三年级9月学情调研英语试卷(含解析,无听力音频无听力原文).pdf VIP
- 人教版(PEP)六年级英语上册复习知识点.doc VIP
- 地方高校工科类微专业建设策略.pptx VIP
- 2023年湖北恩施州鹤峰县选调工作人员11人笔试历年高频考点-难、易错点荟萃-附带答案详解.docx
- 大唐集团工程管理制度.docx VIP
- 人教版(PEP)六年级英语上册复习知识点.pdf VIP
- 三洋电梯图纸VF210-VF310-VF320-VF330电气原理图纸SANYO-E-01.pdf
- 外国教育史课件.ppt VIP
原创力文档


文档评论(0)