汇编语言 写 Hello World
汇编语言 写 Hello World
纯属个人摸索。
- 1.DOS,是 磁盘操作系统 的缩写,是个人计算机上的一类操作系统。
- 2.汇编语言运行在基于DOS操作系统的环境下
- 3.masm是针对汇编的工具组。(博主将以下4个文件放入本地的e:\compile\home)
masm.exe是编译程序,可以将汇编代码.asm编译成.obj文件
link.exe是链接程序,用于将.obj文件生成.exe可执行文件
debug.exe是调试工具,可用于打断点
edit.com是编辑程序,提供对汇编代码的编译
- 4.因为我的电脑是WIN10,下载了一个dos模拟环境工具:dosbox,但是这个软件是16位的
5.操作步骤:
- 5.1 打开dosbox
- 5.2 输入mount c e:\compile\home (意思是将e:\compile\home设置为dos系统(c)盘)
因为这样的话可以不用配环境变量,用于识别masm,link,debug,edit指令 但是仅当次有效
- 5.3最好提前准备好编辑好的.asm文件(可用任何编辑器编辑,事先准备是因为edit.com相对 于别的编辑器不易操作) 放在3.2中指定的文件目录下,然后键入命令:masm hello.asm 若出现Object filename
:(不管它,按回车) 若出现Source listing :(不管它,按回车) 若出现Cross-reference
:(不管它,按回车) 若出现 0 Warning Errors 《表示没有错误警告》 0 Server
Errors 《表示没有服务器错误》 则表示成功编译了hello.asm 为 hello.obj
此时目录下会有个新文件叫做hello.obj
- 5.4 键入 link hello.obj (意思是将此文件生成hello.exe可执行文件) 若出现Run File :(不管它,按回车) 若出现List File :(不管它,按回车) 若出现Libraries :(不管它,按回车) 若出现Link
:warning L4021 : no stack segment (不管它,按回车)
- 5.5 此时命令行会回到C:> (并且文件夹下有 hello.exe)
- 5.6 键入命令 hello.exe (即执行汇编代码经过编译和链接后生成的可执行文件hello.exe)
关于debug的使用:
输入命令:R,查看程序运行前的寄存器组初始值
输入命令:U,查看程序反汇编代码。从反汇编代码中可看出,变量会被汇编为直接寻址方式,使用变量在数据段内的有效地址表示
输入命令:T,单步调试
输入命令:D,观察内存变化(D后不带地址或范围,默认显示上一个D命令之后的80字节内容)
输入命令:G 地址,程序从当前位置直接运行到指定地址处停下
输入命令:E 地址修改内存中的内容,如:E DS:0100,输入空格可逐个字节修改,回车停止修改
PS: debug出来的很多看不懂?
戳这里 http://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html
资源下载:需要两个资源(已在CSDN上传,不要分)
dosbox http://download.csdn.net/detail/xu_san_duo/9723755
masn5.0 http://download.csdn.net/detail/xu_san_duo/9723748
如果对你有帮助,请转载点赞。
汇编语言 写 Hello World相关推荐
- 循环彩灯编程c语言环境,如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作...
如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作 关注:120 答案:2 信息版本:手机版 解决时间 2019-01-09 23:07 遮云壑 2019-01-09 14:42 由89C5 ...
- 用汇编语言写一个程序,它先接收一个字符串,然后显示其中数字符的个数、英文字母的个数和字符串的长度
## 用汇编语言写一个程序,它先接收一个字符串,然后显示其中数字符的个数.英文字母的个数和字符串的长度 DATAS SEGMENT str1 db 0dh,0ah,'please enter a st ...
- 用汇编语言写的第一个DOS程序
今天整理电脑时,看到两三年前学习汇编语言时写的显示"Hello"的程序.不禁感叹那个时候学得如此用心,同样的功能,我竟然用了四种写法.现贴出源码,为了以后继续学习,也为了给初学者一 ...
- 汇编语言写c51延时程序,单片机延时程序实例讲解
在单片机实验中,有一个很重要也是很基本的子程序必须要求我们掌握,那就是延时程序.下面我凭记忆来讲解延时程序. 课本上讲,1个机器周期=6个状态周期=12个时钟周期,而这个时钟周期与晶振频率有关.我们接 ...
- android 编译 汇编,汇编语言写的hellworld,在安卓手机上运行
小白:小程,你为什么给我讲这么古老的语言?我有可能会跟它打交道吗? 小程:如果允许在使用时才去学的话,任何东西都不必提前学习.而"用时才学"的情况是经常存在的,也是有道理的,你的时 ...
- 汇编 - 3.1 - 用汇编语言写的源程序
用汇编语言编写程序的工作过程 汇编程序 包含汇编指令和伪指令的文本. 伪指令 没有对应的机器码指令,最终不被CPU所执行. 谁来执行伪指令呢? 伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关 ...
- 如何在Mac上用汇编语言写HelloWorld
首先,Mac自带nasm,不过我们要先将其升级. 升级它的方法有很多种,因为我已经装好了homebrew,所以我直接在终端输入: brew install nasm 这样就升级啦- 接下来,创建一个H ...
- 贺利坚老师汇编课程21笔记:用汇编语言写的源程序
求2^3 定义一个段 ABC SEGMENTABC ENDS 实现处理任务 ABC SEGMENT MOV AX,2 ADD AX,AX ADD AX,AX ABC ENDS 指出程序在何结束 ABC ...
- 用汇编语言写51单片机程序开头为什么一般都这样:ORG 0000H LJMP MAIN ORG 0030H
1)ORG 是汇编的伪指令 告诉编译器我的代码放在什么位置 2)在单片机复位的时候 在你没有做任何改变的时候 程序指针会是指向0000H的地址 3)所以我们把MAIN卸载地址0000H 让单片机复位后 ...
- c51adc0809c语言程序,用汇编语言写一个51单片机adc0809的程序
匿名用户 1级 2011-08-15 回答 正好做过,就给你吧! ************************************* ;* * ;* 主程序和中断程序入口 * ;* * ;** ...
最新文章
- 带你3分钟学Python变量和数据类型
- CentOS5.8下varnish-2.1.5的安装配置
- 定时从linux获取文件,Linux 使用scp命令定时将文件备份到另一台服务器
- php如何抓取网页内容,php如何抓取网页数据?
- 面试题整理(机器学习、数据结构)
- 7-Arco大讲堂(二)
- Java同步数据结构之ConcurrentLinkedQueue
- 龙管家计费系统服务器连接失败,龙管家网吧计费系统服务端安装步骤
- html去除背景颜色怎么设置,文档底色怎么去掉【解决思路】
- Ubuntu下交叉编译Qt库并移植至ARM板上
- 公司网盘间的风云变幻PK赛
- 信息学奥赛一本通-2069:【例2.12 】糖果游戏
- java mysql 语句中 大于 小于 等于 的写法
- html原生js实现图片轮播,原生JS实现图片轮播切换效果
- 前端常用得CSS代码分享
- HD Base T分配器 灵点科技
- 从零开始学习Linux运维,成为IT领域翘楚(六)
- html iso标准文档,ISO9001-2015-标准中英文.doc
- Wireshark抓包分析之ICMP协议包
- 跨境电商学习班关键词上首页的打法