广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >汇编语言开发过程详解
  • 909
分享到

汇编语言开发过程详解

2024-04-02 19:04:59 909人浏览 八月长安
摘要

目录一、逐步开发(1)源程序的编辑(2)源程序的汇编(3)目标文件的连接(4)可执行文件的运行二、列表文件与调试程序(1)列表文件(2)调试程序三、快速开发程序开发过程 一、逐步开

程序开发过程

在这里插入图片描述

一、逐步开发

在这里插入图片描述

(1)源程序的编辑

  • 源程序文件是无格式文件、纯文本类型
  • 以.ASM为扩展名,可使用任何文本编辑器

windows的记事本Notepad
►其他程序开发工具中的编辑环境
►专注于源程序编写的编辑软件,例如UltraEdit32


; eg0000.asm in Windows Console
	include io32.inc
	.data
msg	byte 'Hello World'		; 数据定义
	.code
start:
	mov eax,offset msg	
	call dispmsg
	exit 0

	end start

(2)源程序的汇编

  • 生成目标模块文件(.OBJ)
  • MASM 6.x的汇编程序是ML.EXE

BIN\ML /c /coff eg0101.asm

►参数“/c”(小写字母)实现源程序的汇编
►参数“/coff”(小写字母)生成COFF格式目标模块文件

ML.EXE的参数区别大小写
将源文件放在MASM目录

(3)目标文件的连接

  • 把一个或多个目标文件和库文件合成一个可执行文件
  • 可执行文件以.EXE为扩展名
  • 32位连接程序被更名为LINK32.EXE

BIN\LINK32 /subsystem:console eg0101.obj

►“/subsystem:console”生成Windows控制台(Console)文件
►“/subsystem:windows”生成Windows图形窗口的可执行文件

使用批处理文件方便操作
汇编程序只指出语法错误

(4)可执行文件的运行

  • 进入控制台(或模拟DOS)环境
  • 在命令行提示符下输入文件名(可以省略扩展名)按下回车键运行

eg0101.exe

运行错误,就需要

  • 静态排错:阅读分析源程序
  • 动态排错:利用调试程序

不要在Windows下双击运行

二、列表文件与调试程序

(1)列表文件

列表文件(.LST)含有源程序和目标代码


BIN\ML /c /coff /Fl eg0101.asm

“/Fl”创建列表文件(大写F、小写l,不是数字1)

列表文件有两部分内容

  • 第一部分:源程序及其代码
  • 第二部分:各种标识符

(2)调试程序

  • WinDbg是微软提供的Windows调试程序
  • WinDbg支持源程序级调试,但汇编、连接时要加入参数

汇编时用“/Zi”(大写Z、小写i)参数


BIN\ML /c /coff /Fl /Zi eg0101.asm

连接时用“/debug”参数


BIN\LINK32 /subsystem:console /debug eg0101.obj

三、快速开发

快速开发的批处理文件MAKE32.BAT


@echo off
BIN\ML /c /coff /Fl /Zi %1.asm
if errorlevel 1 Goto terminate
BIN\LINK32 /subsystem:console /debug %1.obj
if errorlevel 1 goto terminate
DIR %1.*
:terminate
@echo on

快速开发过程

① 进入MASM目录:双击文件WIN32.BAT
② 生成可执行文件:make32 eg0101

到此这篇关于汇编语言开发过程的文章就介绍到这了,更多相关汇编语言开发过程内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 汇编语言开发过程详解

本文链接: https://www.lsjlt.com/news/122430.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 汇编语言开发过程详解
    目录一、逐步开发(1)源程序的编辑(2)源程序的汇编(3)目标文件的连接(4)可执行文件的运行二、列表文件与调试程序(1)列表文件(2)调试程序三、快速开发程序开发过程 一、逐步开...
    99+
    2022-11-11
  • 汇编语言Debug命令详解教程
    目录1. Debug-R命令2. Debug-D命令 3. Debug-E命令 4. Debug-U命令 5. Debug-T命令6. Debug-A命令参考书籍《汇编语言》——王爽...
    99+
    2022-11-12
  • C语言中调用汇编语言详解
    目录1.建立新工程2.改写程序3.总结1.建立新工程 首先点击Project里面的 New uVision Project 然后输入文件名,点击保存即可。 在你命名的project中...
    99+
    2022-11-12
  • 详解汇编语言MOV指令
    MOV(Move)指令是汇编语言中最基本的指令之一,用于将数据从一个位置复制到另一个位置。它的语法形式通常是:MOV dest, s...
    99+
    2023-08-14
    汇编语言
  • 汇编语言入门汇编指令及寄存器详解教程
    目录前言什么是汇编语言汇编语言产生的原因汇编与二进制的关系寄存器寄存器作用存取速度比较寄存器分类常用寄存器用途寄存器EAX、AX、AH、AL的关系汇编语言指令数据传送指令算术运算指令...
    99+
    2022-11-12
  • C语言如何与ARM汇编语言混合编程示例详解
    目录一、ARM汇编语言简介二、C语言调用汇编语言1.无参数调用2.有参数调用三、汇编语言调用C语言四、总结五、参考文献主要使用软件:keiL μVision5 一、ARM汇编语言简介...
    99+
    2022-11-12
  • 汇编语言rep movsd 的使用详解
    mov esi,offset @s1mov edi,offset @s2 mov ecx,10cld rep movsd 1.rep movsd 每次ecx!=0便执行movsd ,...
    99+
    2022-11-15
    汇编 rep_movsd
  • 汇编语言显示功能实现教程详解
    目录问题11 如何确定字符要显示的位置确定3行字符在每一行的起始位置确定3行字符在屏幕中的哪一行2 如何确定字符要显示的颜色属性 问题2:分析:问题1 在屏幕中间...
    99+
    2022-11-12
  • 汇编语言学习assume的作用详解
    assume 的作用是关联段名与段寄存器。 如果你在数据段中定义了变量名,比如: x db 0 而你在代码中,需要直接使用这个变量名,比如: mov al, ...
    99+
    2022-11-12
  • C语言从编译到运行过程详解
    目录C语言从编译到运行一、前言二、C程序编译过程三、阶段过程1、预处理阶段2、编译阶段3、汇编阶段4、链接阶段C语言从编译到运行 一、前言 最近在看CSAPP(深入理解计算机系统)然...
    99+
    2022-11-12
  • 汇编语言LDR指令和LDR伪指令详解
    目录LDR指令和LDR伪指令详解ARM32位指令的构成ldr指令和ldr伪指令的使用区别:补充1:补充2:汇编语言ldr伪指令LDR指令和LDR伪指令详解 ARM32位指令的构成 A...
    99+
    2023-01-28
    ldr指令和ldr伪指令 汇编语言ldr伪指令 汇编语言ldr指令
  • C语言图文并茂详解程序编译过程
    目录一、初识编译器二、程序被编译的过程三、小结一、初识编译器 编译器是一个广义的概念,真正的编译器由下面几个模块组成,真正的编译器是进行语法分析和语义分析的。 二、程序被编译的过程...
    99+
    2022-11-13
  • 详解汇编语言各种指令的解释与用法
    汇编语言是一种低级语言,与计算机硬件直接相关。它使用一系列的指令来表示计算机的操作。下面是一些常见的汇编指令及其解释与用法:1. M...
    99+
    2023-08-17
    汇编语言
  • 汇编语言系列之汇编实现各种码制的转换(思路详解)
    目录1.十六进制转换为二进制数设计1.1设计要求:1.2设计思路:1.3程序清单:1.4程序运行结果及分析:2.十六进制转换为十进制数设计2.1设计要求:2.2设计思路:2.3程序清...
    99+
    2022-11-12
  • C语言通过案例讲解并发编程模型
    目录1、按照指定的顺序输出2、生产者消费者模型3、读写锁下面代码、思路等来源于b站郭郭 和CSAPP样例,同时希望大家好好读一下CSAPP的内容,真的讲的很好 1、按照指定的顺序输出...
    99+
    2022-11-13
  • 【开发语言】C语言与Python的互操作详解
    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头...
    99+
    2023-09-09
    开发语言 c语言 python
  • 汇编语言功能实现数据复制实例详解
    目录问题1:将内存ffff:0~ffff:b单元中的数据复制到0:200~0:20b单元中问题2:将“mov ax,4c00h“之前的指令复制到内存0:200处问题3:将程序中定义的...
    99+
    2022-11-12
  • 图文详解通俗易懂的汇编语言寄存器
    目录认识寄存器计算机架构中的寄存器通用寄存器AX 寄存器BX 寄存器CX 寄存器DX 寄存器索引寄存器状态和控制寄存器物理地址什么是段段寄存器CS 寄存器什么是 Code Segme...
    99+
    2022-11-12
  • c语言中if语句是怎么变成汇编代码的详解
    目录 1. 要编译的测试代码: 2. 词法分析3. 语法分析4. 代码生成4.1 gen_expr4.2 cmp_zero4.3 println(" je .L.else.%d", ...
    99+
    2022-11-12
  • 汇编语言教程文件后缀大小写S区别分析详解
    目录一、大小写后缀的区别二、编译的相关流程1、预处理器2、编译阶段3、汇编阶段4、链接阶段一、大小写后缀的区别 .s 汇编语言源程序;汇编 .S 汇编语言源程序;预处理,汇编 小写的...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作