首页 > 编程语言 >第4章 第一个程序

第4章 第一个程序

时间:2024-07-03 14:01:20浏览次数:3  
标签:可执行文件 第一个 程序 源程序 Debug ax CPU

第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:单步执行程序中的每一条指令

标签:可执行文件,第一个,程序,源程序,Debug,ax,CPU
From: https://blog.csdn.net/m0_53485135/article/details/140147166

相关文章

  • 构建高效盲盒小程序:数据库设计、安全策略与性能优化
    在移动互联网时代,盲盒经济以其独特的魅力迅速崛起,成为连接消费者与商品的新桥梁。盲盒小程序作为这一趋势的载体,不仅要求用户体验流畅,还需确保数据安全与性能卓越。本文将从数据库设计、安全策略及性能优化三个方面,深入探讨如何构建一个高效、安全的盲盒小程序。一、数据库设......
  • 互联网下的扭蛋机小程序开发:探索其独特优势
    随着互联网技术的飞速发展,小程序作为一种新兴的轻量级应用形式,已经在各个领域展现出强大的生命力和广泛的应用前景。在娱乐和零售行业,扭蛋机作为一种经典的随机性消费体验方式,结合小程序进行开发,带来了诸多独特优势。本文将探讨互联网下扭蛋机小程序开发的优势所在。一、便捷......
  • 新鲜出炉,苹果cmsV10的uniapp小程序前端
    新鲜出炉,苹果cmsV10的uniapp小程序前端项目背景找了一圈苹果cms的uniapp小程序都没找到,所以就自己写一个了,现在发出来给大家用有需要的亲加vx: z_fenghuaxueyue  项目截图首页 列表页 ;详情页 video播放 我的页面 后台页面 ;部分接口代码截图......
  • 黑马点评下订单-小程序下单没问题但是Postman发送请求失败了,返回401
    经过多方探索,这个✓8错误就是由于黑马点评使用了拦截器,我们直接发送请求是会被拦截器拦截下来的,我给出的解决方案是通过配置Postman解决,方法很简单!解决方案右边的value写上Redis里面登录所用token值就可以了!!!......
  • [FAQ] windows 设置一个程序的开机自启动
     查看自启动项目: win+R,输入msconfig,点击“启动”这个Tab、打开任务管理器。   添加自己的程序作为开机启动: win+R,输入shell:CommonStartup,把启动程序的快捷方式复制到文件夹中。 SHA散列加密MD5加密Unix时间戳转换Base64编码URL编解码Link:h......
  • Django框架之Cookie和Session概念,Django操作cookie,Django操作Session,CBV添加装饰器
    ⅠDjango框架之Cookie和Session概念【一】Cookie与Session的发展史Cookie和Session是用来在Web应用程序中跟踪用户会话数据的两种常用技术。【1】Cookie的发展史1994年,网景通信公司推出了第一个浏览器Cookie技术。Cookie是存储在用户计算机上的小型文本文件,用于跟踪用户......
  • python+flask计算机毕业设计的家庭收支记账管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会的快速发展和人们生活水平的提高,家庭财务管理变得越来越重要。然而,传统的家庭记账方式往往存在效率低下、易出错、不易统计等问题......
  • python+flask计算机毕业设计的建材店库存管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着经济的迅速发展和建筑行业的蓬勃兴起,建材市场的竞争日益激烈。建材店作为建筑行业的重要供应链环节,其库存管理水平直接影响着店铺的运......
  • python+flask计算机毕业设计的礼服租赁管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着人们对个性化、时尚化需求的日益增长,礼服租赁市场逐渐崭露头角。然而,传统的礼服租赁管理方式往往依赖于纸质记录和人工操作,这种方式不......
  • 基准测试程序的认知与分析 —— SPEC基准测试程序集的深入探索
    基准测试程序的认知与分析——SPEC基准测试程序集的深入探索一、实验目的:了解和掌握Spec基准程序测试对基准程序测试结果进行分析和比较二、实验准备知识:计算机系统设计和分析的量化原则。计算机系统设计和分析的量化原则是指导计算机系统架构设计与评估的一系列准......