当前位置:网站首页>Wang Shuang's Assembly Language Chapter 4: The First Program
Wang Shuang's Assembly Language Chapter 4: The First Program
2022-08-04 08:32:00 【Deteriorate_Kr】
文章目录
前言
现在我们将开始编写完整的汇编语言程序,Compile them into executable files with a compiler(如:*.exe文件),在操作系统中运行.
这一章,我们将编写第一个这样的程序.
一、一个源程序从写出到执行的过程
The brief process of an assembly language program from writing to final execution:
编写--〉编译--〉连接--〉执行
第一步:编写汇编源程序
使用文本编辑器(如Edit、记事本等),用汇编语言编写汇编源程序.这一步工作的结果是产生了一个存储源程序的文本文件.
第二步:对源程序进行编译连接
这一步工作的结果:产生了一个可在操作系统中运行的可执行文件.
第三步:执行可执行文件中的程序
二、源程序
下面就是一段简单的汇编语言源程序
1.伪指令
上图中出现了3种伪指令
(1) XXX segment →XXX end
(2) end
(3)assume,Suppose a certain segment of registers is associated with a certain segment in the program
2.program in source program
3.标号
4.程序的结构
5.程序返回
6. 语法错误和逻辑错误
三、编辑源程序
(2)
(3) 将程序保存为 c:\1.asm后,退出edit,结束对源程序的编辑
The file is saved in our mount directory.
四、编译,得到.obj文件
I directly mounted itMASM目录下,直接执行MASM.exe
我的1.asm文件也在MASM目录下
(5) 忽略了交叉引用文件的生成后,屏幕显示如下图
五、连接,得到.exe文件
The picture below is on your computer
番外
连接的作用
六、以简化的方式进行编译和连接,忽略中间文件
在link后面加上被连接的目标文件的路径、文件名,Add a semicolon to the end of the command line,按Enter键后,连接程序就对当前路径下的1.obj进行处理,在当前路径下生成可执行文件1.exe,并在过程中自动忽略中间文件的生成.
七、 1.exe的执行
八、谁将可执行文件中的程序装载进入内存并使它运行?
问题4.1
问题分析4.2
操作系统的外壳
问题4.1和4.2的分析
小结
九、程序执行过程的跟踪
(The shaded area is memory that has already been used)
注意:There is a step called relocation that we didn't cover above,因为这个问题和操作系统的关系较大,我们不作讨论.
总结
边栏推荐
- 在安装GBase 8c数据库的时候,报错显示“Host ips belong to different cluster”。这是为什么呢?有什么解决办法?
- (三)DDD上下文映射图——老师,我俩可是纯洁的男女关系!
- C Language Lectures from Scratch Part 6: Structure
- 高等代数_证明_幂等矩阵一定能够相似对角化
- 此时已莺飞草长,愿世间美好与你环环相扣
- MySQL 8.0.29 详细安装(windows zip版)
- MYSQL JDBC图书管理系统
- 金仓数据库 KDTS 迁移工具使用指南 (5. SHELL版使用说明)
- DWB主题事实及ST数据应用层构建,220803,,
- JNI学习1.环境配置与简单函数实现
猜你喜欢
C语言strchr()函数以及strstr()函数的实现
DWB主题事实及ST数据应用层构建,220803,,
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
华为设备配置VRRP与路由联动监视上行链路
微信消息从发送到接收,经历了什么?如何防止丢包
智汇华云 | 华云软件定义网络 DCI介绍
IntelliJ新建一个类或者包的快捷键是什么?
ShuffleNet v2网络结构复现(Pytorch版)
【论文笔记】Understanding Long Programming Languages with Structure-Aware Sparse Attention
【电脑录制屏】如何使用bandicam录游戏 设置图文教程
随机推荐
大家好,请教一个问题啊,我们通过flinkcdc把Oracle数据同步到doris,目前的问题是,只
此时已莺飞草长,愿世间美好与你环环相扣
图的基本概念
金仓数据库KingbaseES客户端编程接口指南-JDBC(6. JDBC 大对象数据处理)
GBase 8c数据库集群中,怎么替换节点呢?比如设置A节点为gtm,换到B节点上。
C语言strchr()函数以及strstr()函数的实现
Occupy, fill in later
虚拟机没有USB网卡选项怎么解决
int *p = &a、p = &a、*p = a的正确理解
研究性学习专题 3_LL(1)语法分析设计原理与实现
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
Yolov5 replaces the backbone network of "Megvii Lightweight Convolutional Neural Network ShuffleNetv2"
如何从PG导入数据到kingbaseES
Libpq 是否支持读写分离配置
安装GBase 8c数据库集群时,报错误码:80000306,显示Dcs cluster not healthy。怎么处理错误呢?
MYSQL JDBC图书管理系统
[NOI Simulation Competition] Paper Tiger Game (Game Theory SG Function, Long Chain Division)
秒懂大模型 | 3步搞定AI写摘要
C# 实用的第三方库
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解