汇编语言 写 Hello World

纯属个人摸索。


  • 1.DOS,是 磁盘操作系统 的缩写,是个人计算机上的一类操作系统。
  • 2.汇编语言运行在基于DOS操作系统的环境下
  • 3.masm是针对汇编的工具组。(博主将以下4个文件放入本地的e:\compile\home)
  1. masm.exe是编译程序,可以将汇编代码.asm编译成.obj文件

  2. link.exe是链接程序,用于将.obj文件生成.exe可执行文件

  3. debug.exe是调试工具,可用于打断点

  4. 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相关推荐

  1. 循环彩灯编程c语言环境,如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作...

    如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作 关注:120  答案:2  信息版本:手机版 解决时间 2019-01-09 23:07 遮云壑 2019-01-09 14:42 由89C5 ...

  2. 用汇编语言写一个程序,它先接收一个字符串,然后显示其中数字符的个数、英文字母的个数和字符串的长度

    ## 用汇编语言写一个程序,它先接收一个字符串,然后显示其中数字符的个数.英文字母的个数和字符串的长度 DATAS SEGMENT str1 db 0dh,0ah,'please enter a st ...

  3. 用汇编语言写的第一个DOS程序

    今天整理电脑时,看到两三年前学习汇编语言时写的显示"Hello"的程序.不禁感叹那个时候学得如此用心,同样的功能,我竟然用了四种写法.现贴出源码,为了以后继续学习,也为了给初学者一 ...

  4. 汇编语言写c51延时程序,单片机延时程序实例讲解

    在单片机实验中,有一个很重要也是很基本的子程序必须要求我们掌握,那就是延时程序.下面我凭记忆来讲解延时程序. 课本上讲,1个机器周期=6个状态周期=12个时钟周期,而这个时钟周期与晶振频率有关.我们接 ...

  5. android 编译 汇编,汇编语言写的hellworld,在安卓手机上运行

    小白:小程,你为什么给我讲这么古老的语言?我有可能会跟它打交道吗? 小程:如果允许在使用时才去学的话,任何东西都不必提前学习.而"用时才学"的情况是经常存在的,也是有道理的,你的时 ...

  6. 汇编 - 3.1 - 用汇编语言写的源程序

    用汇编语言编写程序的工作过程 汇编程序 包含汇编指令和伪指令的文本. 伪指令 没有对应的机器码指令,最终不被CPU所执行. 谁来执行伪指令呢? 伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关 ...

  7. 如何在Mac上用汇编语言写HelloWorld

    首先,Mac自带nasm,不过我们要先将其升级. 升级它的方法有很多种,因为我已经装好了homebrew,所以我直接在终端输入: brew install nasm 这样就升级啦- 接下来,创建一个H ...

  8. 贺利坚老师汇编课程21笔记:用汇编语言写的源程序

    求2^3 定义一个段 ABC SEGMENTABC ENDS 实现处理任务 ABC SEGMENT MOV AX,2 ADD AX,AX ADD AX,AX ABC ENDS 指出程序在何结束 ABC ...

  9. 用汇编语言写51单片机程序开头为什么一般都这样:ORG 0000H LJMP MAIN ORG 0030H

    1)ORG 是汇编的伪指令 告诉编译器我的代码放在什么位置 2)在单片机复位的时候 在你没有做任何改变的时候 程序指针会是指向0000H的地址 3)所以我们把MAIN卸载地址0000H 让单片机复位后 ...

  10. c51adc0809c语言程序,用汇编语言写一个51单片机adc0809的程序

    匿名用户 1级 2011-08-15 回答 正好做过,就给你吧! ************************************* ;* * ;* 主程序和中断程序入口 * ;* * ;** ...

最新文章

  1. 带你3分钟学Python变量和数据类型
  2. CentOS5.8下varnish-2.1.5的安装配置
  3. 定时从linux获取文件,Linux 使用scp命令定时将文件备份到另一台服务器
  4. php如何抓取网页内容,php如何抓取网页数据?
  5. 面试题整理(机器学习、数据结构)
  6. 7-Arco大讲堂(二)
  7. Java同步数据结构之ConcurrentLinkedQueue
  8. 龙管家计费系统服务器连接失败,龙管家网吧计费系统服务端安装步骤
  9. html去除背景颜色怎么设置,文档底色怎么去掉【解决思路】
  10. Ubuntu下交叉编译Qt库并移植至ARM板上
  11. 公司网盘间的风云变幻PK赛
  12. 信息学奥赛一本通-2069:【例2.12 】糖果游戏
  13. java mysql 语句中 大于 小于 等于 的写法
  14. html原生js实现图片轮播,原生JS实现图片轮播切换效果
  15. 前端常用得CSS代码分享
  16. HD Base T分配器 灵点科技
  17. 从零开始学习Linux运维,成为IT领域翘楚(六)
  18. html iso标准文档,ISO9001-2015-标准中英文.doc
  19. Wireshark抓包分析之ICMP协议包
  20. 跨境电商学习班关键词上首页的打法

热门文章

  1. vs2005安装使用指南
  2. U盘存储设备有回收站吗及如何快速恢复u盘数据
  3. qq连连看分析编写简单辅助
  4. 快速清理C盘的四个方法
  5. 7种个人主页简历网页模板源码下载
  6. linux系统富士通打印机驱动,PRIMERGY:驱动下载 - 富士通中国
  7. Fujitsu DPK8310Tax 打印机驱动
  8. 手持式频谱分析仪帮助实施毫米波无线信道调查
  9. Modem2G/3G/4G/5G:吐血总结:30分钟掌握高通modem RFFE driver(射频驱动)配置方法(一)
  10. oracle 创建包 def,cognos创建oracle 数据源报错QE-DEF-0285