第4章 第一个程序

news2024/7/31 3:47:16

第4章 第一个程序

4.1 一个源程序从写出到执行的过程

  • 第一步:编写汇编程序
  • 第二步:对源程序进行编译连接
  • 第三步:执行可执行文件中的程序

4.2.源程序

汇编语言中包含两种指令:汇编指令伪指令

  • 汇编指令:有对应机器码的指令,最终被 CPU 执行
  • 伪指令:由编译器进行执行,进行相关的编译动作

伪指令:

在这里插入图片描述

源程序中的程序

将源程序文件中所有内容称之为源程序,然后通过编译连接后转变为机器码,存储在可执行文件中

image

mov ax,4c00H
int 21H

在程序末尾使用这两条指令就可以实现程序返回

标号

一个标号指代了一个地址,例如:codesg 在 segment 的前面,作为一个段的名称,这个段的名称最终会编译一个段的段地址。

在这里插入图片描述

任务:编程运算 2*3。源程序应该怎样来写?

assume cs:abc
abc segment
	mov ax,2
	mov ax,ax
	mov ax,ax
	
	mov ax,4c00H
	int 21H
abc ends
end

在这里插入图片描述

4.3 谁将可执行文件中的程序装载入内存并使它运行?

在 DOS 中,可执行文件中的程序 P1 若要运行,必须有一个正在运行的程序 P2 ,将 P1 从可执行文件中加载入内存,将 CPU 的控制权交给它,P1 才能得以运行;当 P1 运行完毕后,会将 CPU 的控制权交还给使它得以运行的程序 P2。

这个 P2 程序就是 command.com(命令解释器),也就是 DOS 系统的 shell。具体可看下图。

image

在这里插入图片描述

4.4 程序执行过程的追踪

在 DOS 中运行一个程序时,command 将程序从可执行文件中加载入内存并使其运行,之后就放弃了 CPU 的控制权,并不能对程序的执行过程进行跟踪分析,所以这时需要使用到 Debug。Debug 也可以将程序加载如内存,设置 CS : IP 指向程序的入口,但 Debug 并不放弃对 CPU 的控制,这样就可以使用 Debug 相关的命令来单步执行程序,查看每一条指令的执行结果。但最后还是会把 CPU 控制权交还给 command。

  • 使用 Debug 命令
    • 程序加载的顺序:command 加载 Debug,Debug 加载 1.exe 。
    • 返回的顺序是:1.exe 返回到Debug,从 Debug 返回到 command。

图4.20解释在 DOS 系统中的程序的加载过程。

在这里插入图片描述

调试命令:(不区分大小写)

  • 输入R:查看各个寄存器的设置情况
  • 输入U:查看此程序其他指令
  • 输入T:单步执行程序中的每一条指令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1888710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

挖逻辑漏洞不懂数据权限怎么赚大钱?

从开发的角度看权限漏洞的最后一篇了,也就是数据权限篇,虽然之前的都没什么人看,但想了想还是花时间写完了,也算有始有终吧。 0x00 相比于之前的未授权《一文理解权限类漏洞产生的原因之未授权篇》与功能权限《权限类漏洞解析—…

【实战场景】记一次UAT jvm故障排查经历

【实战场景】记一次UAT jvm故障排查经历 开篇词:干货篇:1.查看系统资源使用情况2.将十进制进程号转成十六进制3.使用jstack工具监视进程的垃圾回收情况4.输出指定线程的堆内存信息5.观察日志6.本地环境复现 总结篇:我是杰叔叔,一名…

20_系统测试与维护

目录 测试基础知识 测试原则 动态测试 静态测试 测试策略 测试阶段 测试用例设计 黑盒测试用例设计 白盒测试用例设计 McCabe度量法 鲁棒性测试 缺陷探测率(Defect Detection Percentage,DDP) 调试 系统维护基础 系统转换 系统维护指标 软件容错技术 嵌入式安…

Java语言开发的一套智慧产科系统源码:产科专科电子病历系统源码

Java语言开发的一套智慧产科系统源码:产科专科电子病历系统源码 系统概述 电子病历系统是以住院病人为中心,面向医生以及护士为主的,涉及临床治疗、护理等业务的临床信息系统,以电子信息技术为手段,实时采集病人在整个…

设计模式-结构型-08-组合模式

文章目录 1、学校院系展示需求2、组合模式基本介绍3、组合模式示例3.1、 解决学校院系展示(透明模式1)3.2、高考的科目(透明模式2)3.3、高考的科目(安全组合模式) 4、JDK 源码分析5、注意事项和细节 1、学校…

33.哀家要长脑子了!

憋说了,感觉好不容易长出来的脑子又缩回去了。。。 1.539. 最小时间差 - 力扣(LeetCode) 把所有时间排好序,然后计算两两之间的分钟差就好,但是要注意加上最后一个和第一个的判断,因为这个时间是按字典序来…

python-切片、集合

序列是指:内容连续、有序,可使用下标索引的一类数据容器 序列的常用操作 - 切片 切片的语法 序列的常用操作 - 切片 注意切片的范围是左闭右开 为什么使用集合 集合的常用操作 - 修改 集合的常用操作 - 集合长度 集合常用功能总结 集合的特点

为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}(保姆级包括安装QT)超详细记录版

为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}【保姆级包括安装QT】超详细记录版 Chapter1 为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}(保姆级包括安装QT)超详细记录版一. 安装QT程…

严防数据泄露:风险评估来预警,自查自纠防患未然!

近年来,随着数字化和网络化的快速发展,数据泄露事件呈现高发态势。网络攻击者利用复杂的攻击手段和技术,不断寻找和利用系统中的漏洞,以窃取或破坏数据,对企业声誉、客户信任以及经济利益造成巨大影响。 一、数据泄露的…

提升船舶轨迹查询效率

文章目录 引言I 优化思路1.1 表结构设计1.2 解析请求参数,定位到对应的表格进行查询1.3 mybatis查询1.4 效果II 工具方法2.1 日期处理2.2 spring开启debug日志引言 需求: 查询船舶轨迹 I 优化思路 1.1 表结构设计 按天存储轨迹数据,本文是一个月存储在6在表中,即:01,06…

Windows Hello | 看起来您已经在另一个帐户上设置了 Windows Hello。

问题: 换了新电脑之后一直设置不了Window Hello,报错是 "it looks like youve already setup Windows Hello on another account."。 >>重复set up不行。 >>从旧电脑移除了Windows Hello设置也不行。 >>确认过我的Local…

自闭症学生的刻板行为表现与教育干预策略

在自闭症学校的日常教学中,我深刻体会到刻板行为是许多学生常见且显著的特征之一。这些行为不仅影响学生的学习效果,也是他们与外界沟通互动的一大障碍。 刻板行为首先体现在动作上,学生们可能会反复进行某些无意义的动作,如摇晃身…

如何实现在短信链接中直接打开微信小程序

你是否有过这样的体验,收到一条短信,里面有一个链接,点击后就直接打开了微信,并且进入了一个小程序。这种神奇的功能是如何实现的呢?本文将为你揭晓答案。 利用微信URL Link 接口生成链接 要实现短信中的链接直接打开…

分位数回归模型及 Stata 具体操作步骤

目录 一、引言 二、理论原理 三、数据 四、Stata 程序代码及解释 五、代码运行结果及分析 一、引言 分位数回归作为一种强大的统计分析方法,能够更全面地揭示自变量与因变量在不同分位数水平上的关系。与传统回归仅关注均值不同,分位数回归有助于我们…

function-calling初体验

课程地址:https://learn.deeplearning.ai/courses/function-calling-and-data-extraction-with-llms/lesson/1/introduction github notebook地址:https://github.com/kingglory/LLMs-function-calling/tree/main Function-Calling 介绍 函数调用(Funct…

GAMES104:04游戏引擎中的渲染系统1:游戏渲染基础-学习笔记

文章目录 概览:游戏引擎中的渲染系统四个课时概览 一,渲染管线流程二,了解GPUSIMD 和 SIMTGPU 架构CPU到GPU的数据传输GPU性能限制 三,可见性Renderable可渲染对象提高渲染效率Visibility Culling 可见性裁剪 四,纹理压…

格式化选NTFS还是exFAT 格式化NTFS后Mac不能用怎么办 移动硬盘格式化ntfs和exfat的区别

面对硬盘、U盘或移动硬盘的格式化决策,NTFS与exFAT作为主流的文件系统,用户在选择时可以根据它们的不同特点来选择适用场景。下面我们来看看格式化选NTFS还是exFAT,格式化NTFS后Mac不能用怎么办的相关内容。 一、格式化选NTFS还是exFAT 在数…

网络基础:EIGRP

EIGRP(Enhanced Interior Gateway Routing Protocol)是由思科开发的一种高级距离矢量路由协议,结合了距离矢量和链路状态路由协议的优点;EIGRP具有快速收敛、高效带宽利用、负载均衡等特点,适用于各种规模的网络。EIGR…

面试题springboot面试

文章目录 Spring的依赖注入构造器注入stetter注入属性注入 springboot的优势第一开箱即用约定大于配置内嵌tomcat服务器 javaweb的三大组件springboot的自动配置原理SpringIoc的实现机制springmvcspring如何简化开发 Spring的依赖注入 构造器注入 stetter注入 属性注入 使用…

python小练习04

三国演义词频统计与词云图绘制 import jieba import wordcloud def analysis():txt open("三国演义.txt",r,encodingutf-8).read()words jieba.lcut(txt)#精确模式counts {}for word in words:if len(word) 1:continueelif word "诸葛亮" or word &q…