汇编语言 手记9

使用汇编语言编译程序(MASM.EXE)对源程序文件中的源程序进行编译,产生目标文件

用连接程序(LINK.EXE)对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。

可执行文件中包含两部分内容:

程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据)

相关的描述信息

一个汇编程序是由多个段组成的,这些段被用来存放代码,数据活当作栈空间来使用。

 程序返回:应该在程序的末尾添加返回的程序段

mov ax,4c00H

int 21H

这两条指令所实现的功能就是程序返回。

程序加载后,ds中存放着程序所在的内存去的段地址,这个内存去的偏移地址为0,则程序所在的内存区的地址为: ds:0 ;

这个内存区的前256个字节中存放的是psp,dos用来和程序进行通信。

从256字节处向后的空间存放的是程序。

所以我们从ds中可以得到psp的段地址SA,psp的偏移地址为0,则物理地址为SA*16+0

因为PSP占256(100H)字节,所以程序的物理地址是:

sa*16+0+256 = sa*16+16*16=(sa+16)*16+0

assume cs:codesg

    codesg segment
        mov ax,0123h
        mov bx,0456h
        add ax,bx
        add ax,ax
        
        mov ax,4c00h
        int 21h
        
    codesg ends
end

把 masm.exe 与link.exe一同放入文件夹中:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DeveWork

设置你的Gravatar头像的方法

Gravatar是Globally Recognized Avatar的缩写,是gravatar推出的一项服务,意为“全球公用的头像”。如果在Gravatar的...

29370
来自专栏PHP实战技术

Mysql性能优化之开启Mysql慢查询日志

查看当前服务器是否开启慢查询: 1、快速办法,运行sql语句show VARIABLES like "%slow%" 2、直接去my.conf中查看。 my.c...

280110
来自专栏BeJavaGod

使用shiro自定义过滤器,拦截ajax请求,可用于动静分离

shiro,不多说了,都知道是权限框架 用过shiro的都知道shiro自己有各种过滤器,只要配置好了就可以自动过滤,自动跳转到对应的页面,比如:认证,授权,退...

64650
来自专栏Laoqi's Linux运维专列

rsync 服务方式连接

rsync扩展 : 通过后台服务的方式: 在远程主机上建立一个rsync服务器,将本机作为rsync的客户端。(通常的表现方式为在后面添加 :: ) rsync...

412100
来自专栏运维技术迷

Centos7 firewalld防火墙基本操作

前言 在centos6的版本中,防火墙使用的iptables,iptables是一个静态防火墙,就是说它不能够动态的添加开启端口,必须在配置文件中添加开启端口...

36990
来自专栏Web 开发

jQuery Select菜单二级联动

参考地址: http://wlog.cn/javascript/jquery-select.html

19100
来自专栏用户2442861的专栏

利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    借助securtCRT,使用Linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。

26410
来自专栏流媒体人生

lib库转dll库

假如你有从源文件编译好的静态库lib,你希望从这个lib生成对应的dll,你需要一个def文件里面定义导出的符号,这些符号的定义在那个静态库里,你要生成dll了...

13920
来自专栏性能与架构

Kafka 消息存储及检索

Kafka是一个分布式的消息队列系统,消息存储在集群服务器的硬盘 Kafka中可以创建多个消息队列,称为topic,消息的生产者向topic中发布消息,消息的...

49560
来自专栏ChaMd5安全团队

ImageTragick的快速检测及利用

如何利用burp+metasplot快速检测&利用 ImageTragick(CVE-2016–3714) From ChaMd5安全团队核心成员 小meet...

356120

扫码关注云+社区

领取腾讯云代金券