计算机系统-从应用程序到底层实现 课件 第4讲-汇编初步_第1页
计算机系统-从应用程序到底层实现 课件 第4讲-汇编初步_第2页
计算机系统-从应用程序到底层实现 课件 第4讲-汇编初步_第3页
计算机系统-从应用程序到底层实现 课件 第4讲-汇编初步_第4页
计算机系统-从应用程序到底层实现 课件 第4讲-汇编初步_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《计算机系统》汇编初步《计算机系统》课程教学组2025年春季学期信息的载体人脑思维或高级语言转变成计算机可以执行的指令,也需要一个信息传递和转换的载体:汇编语言“扶贫先扶智,扶智先通语”帮助扶贫对象打通语言障碍,让交流沟通变得顺畅,是实现精准扶贫的重要前提条件。人脑思维机器指令?汇编语言汇编语言机器指令是二进制表达的机器操作,而汇编语言是这些机器操作的符号化表达直观、可读性强、与机器指令一一对应各种操作和资源的符号化实现了对机器物理资源的直接引用寄存器、内存单元、I/O端口提供了对机器操作的直观描述,可以实现代码对底层硬件的直接控制精炼、高效、占用空间少由于汇编语言亲近计算机底层硬件,在工业控制领域应用广泛,是嵌入式系统的重要基础。中国科研团队历经艰苦卓绝的嵌入式系统研发,成功地攻克轨道交通信号系统关键技术缺点:用机器语言编写程序有很高的要求和许多不便。优点:编写出来的程序执行效率高,CPU严格按照程序员的要求去做,没有多余的额外操作。机器指令是CPU能直接识别并执行的指令,它的表现形式是二进制编码。CPU只能执行机器指令。机器指令机器指令机器指令举例:0000100101010110011001000010101101101000110101111110000110011000………………为了改善机器指令的可读性,选用了一些能反映机器指令功能的单词或词组来代表该机器指令:MOV,ADD,SUB等等不再关心机器指令的具体二进制编码。与此同时,也把CPU内部的各种资源符号化,使用该符号名也等于引用了该具体的物理资源,如EAX,ESP等等。通用寄存器80386有如下通用寄存器:AX,BX,CX,DX;SI,DI;SP,BP;(16位)AH,AL;BH,BL;CH,CL;DH,DL(8位)EAX,EBX,ECX,EDX;ESI,EDI;ESP,EBP(32位)段寄存器:DS,ES,SS……大小端法内存按字节编址,每个地址的存储单元可以存放8bit的数据大端与小端Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端你的PC机若是X86系列则是小端的大小端法0X12345678的位表示方法如下大端小端Intel系列机器中采用小端法,有如右所示存储器,矩形内是存储单元保存的内容,矩形右侧是相应的地址,则地址为0X56782的单元中存放的双字节数据是:0X12560X56290X29560X56ABCD提交……0X340X120X560X29……0X800X67…………0X567800X567810X567820X56783……0X834AB0X834AC……可为此题添加文本、图片、公式等解析,且需将内容全部放在本区域内。正常使用需3.0以上版本Intel系列计算机采用小端法,也就是说:一个数据的低位字节保存在低端地址中;换句话说,低端地址保存的是低位字节。答案解析答案解析单选题1分AT&T汇编代码格式:指令源操作数,目的操作数示例:movl$8,%eax注意:本课程涉及的机器CPU计算总是仅从寄存器直接存/取数据

操作数立即数(immediate)寄存器(register)存储器(memory)汇编示例1005.s

.section.text.global_start_start:movl$4,%eaxmovb$0x83,%ahmovl$1,%ebxmovl%eax,%ebxmovl$0x8048054,%dxmovb$4,%edxmovl$1,%eaxint$0x80数据传送movl:用于传送32位的长字值movw:用于传送16位的字值movb:用于传送8位的字节值示例:1006.s寻址方式movl$1,%eax #立即数寻址-1005.smovl%edx,%eax

#寄存器寻址-1006.smovl0x08048054,%eax

#绝对寻址-1007.sx/4bt查看内存内容(b-单字节,h-双字节,w-四字节,g-八字节)x

按十六进制格式显示变量。d

按十进制格式显示变量。u

按十六进制格式显示无符号整型。o

按八进制格式显示变量。t

按二进制格式显示变量。a

按十六进制格式显示变量。c按字符格式显示变量。f

按浮点数格式显示变量寻址方式movl$1,%eax #立即数寻址-1005.smovl%ebx,%eax #寄存器寻址-1006.smovl0x08048056,%ecx #绝对寻址-1007.smovw(%ecx),%ax #间接寻址-1008.s寻址方式movl$1,%eax #立即数寻址-1005.smovl%ebx,%eax #寄存器寻址-1006.smovl0x08048054,%eax #绝对寻址-1007.smovl(%ebx),%eax #间接寻址-1008.smovl0x8(%ebx),%eax #基址偏移量寻址–1008.s

寻址方式movl$1,%eax #立即数寻址-1005.smovl%ebx,%eax #寄存器寻址-1006.smovl0x08048054,%eax #绝对寻址-1007.smovl(%ebx),%eax #间接寻址-1008.smovl0x8(%ebx),%eax #基址偏移量寻址

–1008.s

movl(%ebx,%ecx),%eax #变址寻址-1009.s寻址方式movl$1,%eax #立即数寻址-1005.smovl%ebx,%eax #寄存器寻址-1006.smovl0x08048054,%eax #绝对寻址-1007.smovl(%ebx),%eax #间接寻址-1008.smovl0x8(%ebx),%eax #基址偏移量寻址

–1008.s

movl(%ebx,%edx),%eax #变址寻址-1009.smovl0x8(%ebx,%edx),%eax #变址基址寻址–1009.s

movl(%ebx,%ecx,0x2),%eax #比例变址寻址-1010.s寻址方式movl$1,%eax #立即数寻址-1005.smovl%ebx,%eax #寄存器寻址-1006.smovl0x08048054,%eax #绝对寻址-1007.smovl(%ebx),%eax #间接寻址-1008.smovl0x8(%ebx),%eax #基址偏移量寻址

–1008.s

movl(%ebx,%edx),%eax #变址寻址-1009.smovl0x8(%ebx,%edx),%eax #变址基址寻址–1009.s

movl(%ebx,%ecx,0x2),%eax #比例变址寻址-1010.smovl0x8(%ebx,%ecx,0x2),%eax #比例变址基址寻址-1010.s数据传送使用mov指令在内存和寄存器之间传送数据把数据值传送到内存(1011.s)

--增加了.section.data段,申明变量 --print&value,查看value变量在内存中的地址 --x/4bt查看内存内容(b-单字节,h-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论