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

深圳网站建设信科便宜深圳校园网站建设

深圳网站建设信科便宜,深圳校园网站建设,不带地域的公司名称怎么注册,wordpress中文cms主题模板下载目录 汇编整体分类 1.指令 2.伪操作 3.伪指令 汇编代码 汇编初始化 数据搬运指令 算术运算指令 加法 减法 乘法 比较指令 跳转指令 逻辑运算指令 与或#xff0c;异或 左移右移 内存操作 LOAD/STORE 指令 写 读 CPU的栈机制 栈的概念 栈的种类 1.空栈(…  目录 汇编整体分类 1.指令 2.伪操作 3.伪指令 汇编代码 汇编初始化 数据搬运指令 算术运算指令 加法 减法 乘法 比较指令 跳转指令 逻辑运算指令 与或异或 左移右移 内存操作 LOAD/STORE 指令 写 读 CPU的栈机制 栈的概念 栈的种类 1.空栈(Empty) 2.满栈(Full) 栈的基本操作 PUSH/POP 栈的应用 叶子函数 非叶子函数 汇编整体分类 1.指令 编译完生成一条机器码存储在内存单元当中CPU执行时能完成对应的操作(类似于C中的语句) 2.伪操作 伪操作(相当于c中的#的内容告诉编译器怎么编译不会生成机器码也不会占用内存,其作用是告诉编译器怎样编译(类似于C中的预处理指令) 3.伪指令 伪指令不是指令,编译器在编译时将其替换成等效的指令 (如cpu中没有乘法器对应没有乘法指令3*3 ---》用加法器实现333替换实现) 汇编代码 汇编初始化 AREA    STACK, NOINIT, READWRITE __initial_spAREA    RESET, DATA, READONLY __Vectors       DCD     __initial_spDCD     main              AREA    |.text|, CODE, READONLYENTRY mainloopB loop                  END 1.AREA STACK, NOINIT, READWRITE: 这一行指定了一个名为STACK的内存区域它用于存储堆栈。NOINIT表示这个内存区域在程序启动时不需要初始化READWRITE表示这个内存区域可以被读取和写入。 2.__initial_sp: 这一行定义了一个名为__initial_sp的符号它表示堆栈指针的初始值。在这里它被定义为堆栈的起始地址。通常这个符号会在链接脚本中进一步定义为实际的堆栈内存区域的起始地址。 3.AREA RESET, DATA, READONLY: 这一行指定了一个名为RESET的内存区域用于存储重置向量表。DATA表示这个区域包含数据READONLY表示这个区域只能被读取。 4.__Vectors DCD __initial_sp: 这一行定义了一个重置向量表用于指示程序启动时应该执行的操作。DCD表示存储一个双字32位的数据。在这里第一个双字存储的是堆栈指针的初始值即__initial_sp。 5.DCD main: 这一行将程序的入口地址main函数添加到重置向量表中。这意味着程序在启动时将跳转到main函数开始执行。 6.AREA |.text|, CODE, READONLY: 这一行指定了一个名为.text的内存区域用于存储代码。CODE表示这个区域包含代码READONLY表示这个区域只能被读取。 7.ENTRY main: 这一行指定了程序的入口点为main函数。这意味着程序将从main函数开始执行。 8.loop B loop: 这一行是一个无限循环它会不断地跳转到loop标签所在的位置导致程序永远循环执行这条指令。 9.END: 这一行表示程序的结束。 数据搬运指令 改变PC的值实现程序跳转 AREA    STACK, NOINIT, READWRITE __initial_sp                 AREA                 RESET, DATA, READONLY __Vectors       DCD     __initial_sp                  DCD     main                               AREA    |.text|, CODE, READONLY                 ENTRY main   MOVS R0,#2 MOVS R1,R0 ;改变PC的值实现程序跳转0x08000008 ;先把地址给一个寄存器再把这个寄存器的值赋给PC LDR R2,0x08000008 MOV PC,R2 loop                 B loop                                    END 算术运算指令 加法 AREA    STACK, NOINIT, READWRITE __initial_sp                 AREA                 RESET, DATA, READONLY __Vectors       DCD     __initial_sp                  DCD     main                               AREA    |.text|, CODE, READONLY                 ENTRY main   MOVS R0,#2 MOVS R1,R0 ADDS R3,R0,R1  ;R30X04 LDR R8,0X01 ADD R8,R8,R3   ;R8R8R3 0X05 loop                 B loop                                    END 减法 AREA    STACK, NOINIT, READWRITE __initial_sp                 AREA                 RESET, DATA, READONLY __Vectors       DCD     __initial_sp                  DCD     main                               AREA    |.text|, CODE, READONLY                 ENTRY main   MOVS R0,#2 MOVS R2,#2 MOVS R1,R0 SUBS R2,R0,R1  ;R2R0-R1 loop                 B loop                                    END 乘法 AREA    STACK, NOINIT, READWRITE __initial_sp                 AREA                 RESET, DATA, READONLY __Vectors       DCD     __initial_sp                  DCD     main                               AREA    |.text|, CODE, READONLY                 ENTRY main   MOVS R0,#2 MOVS R2,#2 MOVS R1,R0 MULS R2,R0,R2  ;R2R0*R2 loop                 B loop                                    END 比较指令 跳转指令 AREA    STACK, NOINIT, READWRITE __initial_sp                 AREA                 RESET, DATA, READONLY __Vectors       DCD     __initial_sp                  DCD     main                               AREA    |.text|, CODE, READONLY                 ENTRY JUMP MOVS R0,#1 MOVS R2,#1 LDR R3,0X0800001A MOV PC,R3main   MOVS R0,#2 MOVS R2,#2 MOVS R1,R0 CMP R0,R2  ;if(ab) BEQ JUMP   MOVS R0,#3 loop                 B loop                                    END AREA    STACK, NOINIT, READWRITE __initial_sp                 AREA                 RESET, DATA, READONLY __Vectors       DCD     __initial_sp                  DCD     main                               AREA    |.text|, CODE, READONLY                 ENTRY JUMP MOVS R0,#1 MOVS R2,#1 MOV PC,LRmain   MOVS R0,#2 MOVS R2,#2 MOVS R1,R0 BL JUMP MOVS R0,#3 loop                 B loop                                    END 逻辑运算指令 与或异或 AREA    STACK, NOINIT, READWRITE __initial_sp                 AREA                 RESET, DATA, READONLY __Vectors       DCD     __initial_sp                  DCD     main                               AREA    |.text|, CODE, READONLY                 ENTRYmain   MOVS R0,#2   ;R0:0010 MOVS R1,#1 ;R1:0001 ANDS R1,R1,R0   ;R1R1R0 R10000 EORS R1,R1,R0   ; 0010  0000  0010 loop                 B loop    END 左移右移 AREA    STACK, NOINIT, READWRITE __initial_sp                 AREA                 RESET, DATA, READONLY __Vectors       DCD     __initial_sp                  DCD     main                               AREA    |.text|, CODE, READONLY                 ENTRYmain   MOVS R0,#2   ;R0:0010  左移1位  0100--4 MOVS R1,#1 ;R1:1 LSLS R0,R0,R1 loop                 B loop    END 内存操作 LOAD/STORE 指令 写 读 CPU的栈机制 栈的概念 栈是一种具有特殊的访问方式的存储空间特殊性就在于后进先出 栈的种类 1.空栈(Empty) 栈指针指向的地址是空的在栈中存储数据时可以直接存储存储完成之后需要将栈指针再次指向空的位置。 EA:Empty Ascending 空增栈 ED:Empty Descending 空减栈 2.满栈(Full) 栈指针指向的地址有数据在栈中存储数据时需要先将栈指针指向一个空的位置然后在存储数据。 增栈(Ascending)         栈指针向高地址方向移动 减栈(Descending)         栈指针向低地址方向移动 FA:Full Ascending 满增 FD:Full Descending 满减 ARM默认采用的是满减栈 栈指针指向有数据的顶接收数据时栈指针先移动再放数据。指针的移动是地址的降低 栈的基本操作 栈有两种基本的操作:入栈和出栈 1.入栈:将一个新的元素放到栈顶 2.出栈:从栈顶取出一个元素 栈顶元素总是最后一个入栈的需要出的时候又会是第一个被取出的 操作规则:LIFO后进先出 PUSH/POP PUSH 入栈压栈 POP 出栈弹栈 //主程序给R1,R2,R3,R4分别存入0x11111111 0x22222222 0x33333333 0x44444444然后跳入函数JUMP //2.写一个函数JUMP函数内修改R1为0x20000001 R3为0x00000000 //3.修改结束后返回主函数 //4.主函数再使R1和R3相加后存入R1跳出主程序进入死循环 //子程序返回主程序时不可以使用MOV指令和B BL BX BXLAREA    STACK, NOINIT, READWRITE __initial_sp                 AREA                 RESET, DATA, READONLY __Vectors       DCD     __initial_sp                  DCD     main                               AREA    |.text|, CODE, READONLY                 ENTRY main  ADD SP,SP,#0X100;上调栈指针LDR R1,0X11111111;LDR R2,0X22222222;LDR R3,0X33333333;LDR R4,0X44444444;BL JUMPADD R1,R1,R3B loop JUMPPUSH {R0-R4,LR} ;保护现场LDR R1,0X44324302;LDR R3,0X33222055;POP{R0-R4,PC} ;恢复现场 loop                 B loop     END 栈的应用 叶子函数 叶子函数是指一个函数内部没有调用其他函数的函数也就是说它是程序调用树的末端节点不依赖于其他函数。 非叶子函数 非叶子函数是指一个函数内部调用了其他函数的函数也就是说它不是程序调用树的末端节点可以被其他函数调用。
http://www.hkea.cn/news/14451635/

相关文章:

  • 织梦大气企业网站模板(扁平化风格)竞价sem托管公司
  • 上饶公司网站建设企业形象设计教案
  • 沈阳h5建站现在去兰州会不会被隔离
  • 网站企业备案需要哪些红色旅游网页设计
  • 行业网站建设收费明细外贸业务员怎么开发客户
  • c 网站开发案例源码wordpress手机号码登录插件
  • 电子商务网站建设定位设想wordpress播客插件
  • 网站标题 逗号wordpress迁移数据库
  • 网站建设学生选课系统百度指数的搜索指数代表什么
  • 厦门大型企业网站开发公司设计单位有哪些公司
  • 新开传奇网站180火龙怎么制作钓鱼网站链接
  • 昆明市建设局网站龙岩企业网站建设制作
  • 医院如何做网站策划企业网站建设条件
  • 腾讯云 wordpress建站wordpress timer
  • 丰台高端网站建设无极网络是什么意思
  • 做网站要先申请域名吗怎样找公司做单的网站
  • 现在建网站多少钱个人智慧团建网站
  • 国外自建站怎么样极速网站建设多少钱
  • 大庆网站建设公司网络的最基本定义
  • 门户网网站建设功能需求表大红门桥做网站
  • 建设网站的公司的官网互联网公司做什么的
  • 建个企业营销型网站wordpress可以做外贸
  • seo整站优化价格网站注册查询
  • 做网站建设的联系电话能免费做微信群推广的网站
  • 代做毕业设计的网站好潜江招聘资讯网
  • 贵阳网站建设贵阳网站建设哪家好怀来县住房和城乡规划建设局网站
  • 昆明百度搜索排名优化seo是指搜索引擎营销
  • 免费企业网站开源系统宁波妇科最有名的医院
  • 要如何做才能拥有自己的网站呢网站建设申请空间
  • 那些企业需要做网站网站建设软件有哪些