前言

在上篇博文 【汇编】1.汇编环境的搭建:DOSBox的安装 中,我们完成了

1.汇编环境模拟器DOSBox的安装。

2.汇编编译相关程序MASM6的下载。

在上篇文章的最后我们提到了挂载DOS程序把 :~\MASM6 文件夹映射到DOSBox环境下的 C: 根目录

接下来的这篇文章将在上一篇文章的基础上完成我们汇编的第一个程序:hello world。


相关操作

1.在 :~\MASM6\ 文件夹内新建一个txt文本文件。

2.在文件内键入如下代码:

DATA SEGMENT
STRING DB 'HELLO,WORLD!$'
DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX MOV DX,OFFSET STRING
MOV AH,9
INT 21H MOV AH,4CH
INT 21H
CODE ENDS
END START

3.修改文件名为hello,并修改文件后缀为.asm。

4.打开DOSBox,挂载MASM6,将 :~\MASM6\ 文件夹映射到DOSBox环境下的 C: 根目录

5.进入DOSBox环境下的 C: 根目录:键入`C:`
![](https://ws1.sinaimg.cn/large/006tNc79gy1fsyfia57nij31100q0q8u.jpg)

6.编译我们刚才创建的hello.asm文件:键入`masm hello.asm`,编译成功将会在文件夹下产生.obj文件。

7.连接.obj文件:键入`link hello.obj`,连接成功将会在文件夹下产生.exe文件。在这一步中会让我们输入一些参数,多按几次回车键忽略参数输入即可。

8.运行.exe文件:键入`hello.exe`,此时我们要的 hello world 就输出出来了。

![](https://ws1.sinaimg.cn/large/006tNc79gy1fsyfuxkit0j31100q0n22.jpg)


名词解释

;声明'数据段'开始

;数据,可以理解为DB类型数组,数组名是STRING,数组内容是HELLO,WORLD!$,

;$符号后续进行说明.单引号表明数据是以字符类型存入,

;内存中实际存放的是该字符对应的ASCII码.

;声明'数据段'结束


|版权声明:除特别注明外,本博客所有文章均为博主T.P原创,转载请注明出处:https://www.cnblogs.com/tp0829/p/9266253.html

【汇编】2.第一个程序:hello world的更多相关文章

  1. 起航,第一个程序——还是LED灯

    如同学基本语言一样,helloworld是很多语言的第一个程序.在嵌入式开发中,点亮LED灯也是各种架构和开发板的第一个程序,其中很多东西是和单片机例如stm32是类似的,只是,现在我们没有了库函数, ...

  2. Java第一天,带你走进编程的世界,我的第一个程序

    要想彻底了解Java是什么,我就得首先了解编程语言的发展史.编程语言最初的形势是"0101......"数据编程,也就是机器语言.机器语言可以说是一种几乎没有人能够看懂的编程语言, ...

  3. Android开发-之第一个程序:HelloWorld!

    小编觉得不管学习什么编程的时候,第一个程序都是要求打印输出一个"HelloWorld!",那就从最简单的HelloWorld开始吧!哈哈~~~~ 一.创建一个Android工程 1 ...

  4. [Fluent NHibernate]第一个程序

    目录 写在前面 Fluent Nhibernate简介 基本配置 总结 写在前面 在耗时两月,NHibernate系列出炉这篇文章中,很多园友说了Fluent Nhibernate的东东,也激起我的兴 ...

  5. rails再体验(第一个程序)

    掌握redmine plugin开发的目标在2016年未实现,2017年继续. 选择<Ruby on Rails Tutorial>教程,windows安装railsinstaller,该 ...

  6. OpenGL学习笔记1——第一个程序

    学习的参考书基本是按照GL编程指南,如果有消息机制概念,对于GLUT的理解是很自然的.下面就按照自己写的第一个程序详细解释一下GL,还是比较容易上手的. 程序实现的功能是,根据当前随即种子摇出来的结果 ...

  7. Android 第一个程序 及 环境搭配

    一. JDK配置 1.找到jdk安装路径 2.配置环境变量(建议配置在系统变量里面) 1).配置JAVA_HOME变量 2).配置 CLASSPATH 环境变量 CLASSPATH=.;%JAVA_H ...

  8. unix 网路编程(卷一)第一个程序编译过程

    unix卷一去年暑假买的到现在才开始看无比惭愧,而且惭愧第一个程序就断断续续弄了几天,要好好写程序了,马上要找工作了,下面介绍下把本书第一个程序跑起来的过程: 搜各种博客 我用系统的是ubuntu 1 ...

  9. Hadoop学习历程(三、第一个程序)

    根据之前的操作,我们已经可以正常的启动Hadoop了,关于真正的集群我会在之后进行说明.现在我们来看一下第一个程序吧 1. 在eclipse上建立一个java项目 2. 将 /usr/hadoop/s ...

随机推荐

  1. [MySQL]获取当月每一天

    常用使用场景: 统计某个月(某个时间区间)内每一天的数据量 select date_add(curdate(), interval(cast(help_topic_id as signed integ ...

  2. @atcoder - Japanese Student Championship 2019 Qualification - F@ Candy Retribution

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 请找到满足以下条件的长度为 N 的非负整数序列 A1, A2, ...

  3. SaltStack之用户账户管理

    在Salt.state中,user 模块是用来创建用户和管理用户设定的,用户可以被设置成 present 状态或者 absent 状态 注释: present:添加用户 absent   : 删除用户 ...

  4. day7_python之面向对象item系列(__getitem__,__setitem__,__delitem__)

    class Foo: def __getitem__(self, item): print('=====>get') return self.__dict__[item] def __setit ...

  5. behavior planning——12.example cost funtion -lane change penalty

      In the image above, the blue self driving car (bottom left) is trying to get to the goal (gold sta ...

  6. Unity5.6.4f1 配置WebGL教程

    Unity 5.6.4f1 发布WebGL的配置教程 步骤一:先查看自带的Unity是否yi配置好WebGL的项,若无,则可遵循以下教程来设置 步骤二:下图是我已经设置好的,未设置好的状态是,有个Op ...

  7. Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow pip命令

    引言: Tensorflow大名鼎鼎,这里不再赘述其为何物.这里讲描述在安装python包的时候碰到的“No matching distribution found for tensorflow”,其 ...

  8. dell装系统

    Dell f2进入bios USB support改为enable Uefi 改为legacy F12可看到USB

  9. ES6,ES7重点介绍

    1. 字符串模板 <!--旧版拼接字符串--> var str = '我是时间:'+new Date(); <!--新版拼接字符串--> let str = `我是时间${ne ...

  10. zookeeper(1)-概述

    ZooKeeper概述 ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现.它提供了简单原始的功能,分布式应用可以基于它实现更高级 ...