8086CPU写汇编的规则
assume cs:程序入口标号
标号1 segment
数据块
……
标号1 ends
标号2 segment
……
……
标号2 ends
程序入口标号 segment
代码块
……
x:
代码块
……
程序入口标号 ends
end 标号x;程序入口
标号:数据块(代码块)在内存中的段地址
(标号·16+0000h):数据块(代码块)在内存中的起始地址
设数据块(代码块)的大小为x字节
则数据块(代码块)的终止地址为((标号+x / 16+x % 16 && 1)·16-0001h):/ 为整数除法,% 为取余符号
给数据块(代码块)分配内存时,都是以16字节的整数倍进行分配的,所以终止地址如上所示
在程序编译过程中,编译过程是从上往下编译,程序块可能会用到数据块或其他程序块,所以会用到的数据应该先于入口程序编译。
每一个数据块(代码块)都需要一个segment作为开始 和 ends作为结束
数据块与代码块在CPU看来都是等同(在内存中)的,所以需要一个标号来让CPU区别两者,程序末尾的“end 标号x”就是这样的标号。当执行到这一步时,cs:ip(指令指针)会指向标号x所在的位置,开始执行
8086CPU写汇编的规则相关推荐
- 一步步点亮LED3_从零开始手写汇编点亮LED
1.GPxCON.GPxDAT寄存器分析 GPJ0端口一共有8个引脚,分别记作:GPJ0_0 ~ GPJ0_7,相关重要寄存器就是GPJ0CON和GPJ0DAT GPJ0CON寄存器中设置8个引脚的工 ...
- 【汇编语言】理解8086CPU中,不同类型的寄存器和汇编指令规则的联系(会继续更新)
0 前言 你是否因为汇编指令繁杂的规则而苦恼呢?作者本人也很烦,因为往往教材中只告诉我们规则,却不告诉我们为什么,没有原因就直接记忆,负担太大,后期灵活运用也增添阻力,因此,我经过自己的思考去为你解释 ...
- 在Mac上写汇编!(一)helloworld nasm on macos
参考和感谢: https://blog.csdn.net/s793223706/article/details/82469971 教你在Mac上写汇编 https://stackoverflow.co ...
- c语言编译load,用C语言写汇编代码之LoadLibrary
用C语言写汇编代码之LoadLibrary 2006-6-6 23:29 9868 用C语言写汇编代码之LoadLibrary 2006-6-6 23:29 9868 用C写一个加载msvcrt.dl ...
- #跟我一起写 Makefile# 隐含规则使用隐含规则
目录 隐含规则 使用隐含规则 隐含规则 在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o]文件,Wind ...
- mov 指令用c语言写,汇编总结:mov指令
mov指令的作用: mov指令可能是汇编里用的最多的指令了,完成c语言里的赋值. mov指令种类: 1.普通的mov指令 2.做符号扩展的movs 3.做零扩展的movz 1.普通mov的种类有: m ...
- 反外挂之手写汇编锁血功能
第一步 找到生命值地址 第二步 找到修改生命值的汇编代码 第二步 分析汇编 通过分析汇编得到 是这一句代码改写了生命值. 第三步 开始代码修改 通过CE分配内存得到一段内存地址 0x02310000 ...
- Linux环境下使用dosemu写汇编
汇编语言学习篇2--MASM的环境搭建(win10与Ubuntu1604下的配置)[有问题,待更正] 8086汇编语言入门-HelloWorld 参考链接 DOSBox+MASM搭建汇编环境 百度云 ...
- 8086CPU常见汇编指令、debug命令
一条指令对应的两个操作数位数必须一致 汇编指令: 1.mov x,y 传送:y到x x,y: 寄存器,数据 寄存器,寄存器 寄存器,内存物理地址 内存物理地址,寄存器 内存物理地址,数据 寄存器,内存 ...
最新文章
- [BZOJ] 1606: [Usaco2008 Dec]Hay For Sale 购买干草
- 进fastreboot
- MongoDB基本命令总结
- sap 彻底删除物料主档
- os.walk获取同级目录具有随机性
- leetcode 834. 树中距离之和(dp)
- python中_str_使用方法
- 获取CPU利用率 系统内存和进程内存
- 理解 CI 和 CD 之间的区别(翻译)
- 创建索引时,键列位置的重要性
- 【计算机网络】IPv4 NAT
- 股东其实对公司情况一无所知,唯一办法是追责
- objdump选项解释
- linux下exe软件反编译工具下载,ilspy.exe
- 部分PTA自测题答案(仅参考)
- 2.4g低功耗SI24R1校园答题器
- 使用JS-SDK自定义微信分享效果
- unicode编码转gb2312编码并显示中文(cjava)
- 【信奥赛一本通】1253:抓住那头牛(详细代码)
- 《深入理解计算机网络》迷你书
热门文章
- poj 2513 Colored Sticks( 字典树哈希+ 欧拉回路 + 并查集)
- 推荐25个非常优秀的网页表单设计案例
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结
- C# 系统应用之调用SDelete程序粉碎文件及基础原理知识
- Swift之深入解析如何将代码添加为自定义LLDB命令
- JavaScript禁用鼠标右键菜单
- JAVA运算符\操作符
- 【Java8】堆栈/队列/数组/链表/红黑树,List/set子接口,hashcode/hashset,Map/内部接口,/统计字符个数,debug,斗地主,Collections,TreeSet
- 【Linux网络编程】组播
- 【Linux】一步一步学Linux——setfacl命令(117)