汇编语言第四章总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了汇编语言第四章总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1753字,纯文字阅读大概需要3分钟。
内容图文
基本语法结构:
assume cs:段名 段名 segment …… 段名 end end
ps: assume 用于寄存器和特定段关联起来
程序返回:
mov ax, 4c00h int 21h
-p 执行 int 指令
告诉系统这款内存可以使用了
debug x.exe, 可以对某个程序进行过程跟踪
exe 程序加载过程:
1、找到以 SA:0000 为起始地址的容量足够的内存区;
2、在这个段内存区域的前256个字节创建一个 程序段前缀 (PSP) 的数据区域
DOS利用PSP来和被加载的程序通信(PSP 是啥我也不知道)
ps:百度查到PSP
PSP内有程序返回、程序文件名等信息
个人觉得挺有意思的:https://baike.baidu.com/item/%E7%A8%8B%E5%BA%8F%E6%AE%B5%E5%89%8D%E7%BC%80/2173868?fr=aladdin
3、从这段内存区域的256字节处开始,将程序装入SA+10H:0;
为了防止访问到PSP部分,PSP 和 程序段 的 物理地址连续,由于段地址不同
以及 寄存器 限制,二者无法互通
4、将该地址的段地址存入 ds 寄存器中,初始化其他相关寄存器,设置CS:IP指向
程序的入口
ps:这里还有重定位未涉及,我还没学到操作系统所以,先放放
为什么需要 编译 和 链接 分开?
当代码量过大时如果 编译 一步完成 那么如果 代码存在语法错误,每一次编译都需要
完完整整的重新编译一次,非常浪费时间,所以就把编译切割成一份份的,哪一份错了就重新编译哪一份
当所有文件都通过编译,链接 就将编译出来的 .obj 文件 连接起来 生成 .exe 文件
系统是如何知道,.exe 文件需要多少内存的?
.exe 文件中包含一些信息,这些信息包括了 程序入口、 文件大小、程序的位置,
系统就是根据这些信息 对 寄存器 进行 相关设置
eg:
start翻译出来的信息 就会成为 exe文件的 所包含的 程序入口,然后系统就会知道描述文件中
的内容 去设置 CS :ip。
下面是一个完整的ASM源码,实现了 栈内部数据的交换
assume cs:codesg codesg segment mov ax, 2000 mov ss, ax mov sp, 0 add sp, 10 pop ax pop bx push ax push bx pop ax pop bx mov ax, 4c00 int 21 codesg ends end
内容总结
以上是互联网集市为您收集整理的汇编语言第四章总结全部内容,希望文章能够帮你解决汇编语言第四章总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。