简单汇编程序编译链接执行过程
来源:互联网 发布:马克思主义哲学 知乎 编辑:程序博客网 时间:2024/05/18 01:38
1.编写
使用cmd进入命令窗口
输入edit进入编辑器,输入代码,如:
assume cs:abc abc segment mov ax, 2 add ax, ax add ax, ax abc ends end
保存在c盘,1.asm
2.编译
使用masm
在cmd中,输入
D:\>cd masm进入masm目录,里面有masm.exe和link.exe进行编译链接
输入masm
D:\masm>masmMicrosoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.
Source filename [.ASM]: c:\1.asm
可以指定目标文件的名称路径,也可以用默认的路径名称
Object filename [1.OBJ]:Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
49176 + 397112 Bytes symbol space free
0 Warning Errors
0 Severe Errors
3.链接
D:\masm>link
Microsoft (R) Overlay Linker Version 3.60
Copyright (C) Microsoft Corp 1983-1987. All rights reserved.
输入目标文件
Object Modules [.OBJ]: 1Run File [1.EXE]:
List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment
这样就产生了可执行的二进制文件1.exe
4.运行
D:\masm>1
5.调试
cmd下使用debug调试可执行程序
-r 查看内容
-t 单步调试
-p
-d
-e
-q 退出
D:\masm>debug 1.exe
-r
AX=0000 BX=0000 CX=0007 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=151C ES=151C SS=152C CS=152C IP=0000 NV UP EI PL NZ NA PO NC
152C:0000 B80200 MOV AX,0002
-t
AX=0002 BX=0000 CX=0007 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=151C ES=151C SS=152C CS=152C IP=0003 NV UP EI PL NZ NA PO NC
152C:0003 03C0 ADD AX,AX
-t
AX=0004 BX=0000 CX=0007 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=151C ES=151C SS=152C CS=152C IP=0005 NV UP EI PL NZ NA PO NC
152C:0005 03C0 ADD AX,AX
-t
AX=0008 BX=0000 CX=0007 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=151C ES=151C SS=152C CS=152C IP=0007 NV UP EI PL NZ NA PO NC
152C:0007 0000 ADD [BX+SI],AL DS:0000=CD
-
- 简单汇编程序编译链接执行过程
- 程序编译、链接简单过程
- OC代码编译,链接,执行过程 02
- linux下编译,链接,运行汇编程序
- * linux下编译,链接,运行,汇编程序
- 汇编程序 在 linux下编译,链接,运行
- as86汇编程序的编译与链接
- 编译与链接的简单过程小结
- 通过反汇编程序观察计算机执行过程
- 通过反汇编程序观察计算机执行过程
- 【编译原理】程序的编译链接执行过程
- 函数执行过程(预处理->编译->汇编->链接)
- 程序的实现过程(编译、链接、执行)
- gcc 的执行过程详解 预处理 编译 汇编 链接
- 动态链接执行过程
- g++编译 链接 执行
- 编译--链接--被执行
- [Hb-III] 汇编程序的编译 连接 加载 执行
- 使用编程方式获取当前Java进程的进程ID
- Sql server快速有条件删除海量数据 Truncate
- Android语音识别
- 用Java批量下载PDF
- java面试题2 String与StringBuffer的区别
- 简单汇编程序编译链接执行过程
- ubuntu 10.04中开启telnet服务
- GCC初步
- Flowers hdu1587 贪心算法
- LCD驱动及Framebuffer相关 .
- 基础模拟——花生问题 The Peanut
- 在输入中如何忽略换行字符
- 深度探索C++对象模型之(七)
- Android Display架构分析--侧重高通平台 .