【汇编语言】新手第一步——HelloWorld & A+B
国际惯例,HelloWorld。
这个程序是masm for windows里面的样例程序。按照我自己的理解,对其加上了注释。
;完整段的Hello World程序
DATAS SEGMENT
STRING DB 'Hello World!',13,10,'$'
;定义了一个字符串,标号是STRING,其值是字符串首字符的地址。
;DB表示的是字符串中每个字符的都是一个字节,每往后加1的时候,地址偏移量加1.
;13 CR 回车
;10 LF 换行
;$作为字符串的结束符
DATAS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS
MOV DS,AX LEA DX,STRING;LEA 获取偏移量,并将其存入DX MOV AH,9
INT 21H ;INT 21H是DOS中断的调用,其执行的操作根据AH里面的值来确定。
;9,表示的是输出字符串,其地址为DS:DX
;4CH带返回码结束
MOV AH,4CH
INT 21H
CODES ENDS
END START
然后改写了其中的两个数相加的样例。这是从控制台输入,但是只能输入一位。多位数相加正在学习中。
DATAS SEGMENT
;此处输入数据段代码
TIP1 DB 'PLEASE INPUT A:',,,'$'
TIP2 DB ,,'PLEASE INPUT B:',,,'$'
TIP3 DB ,,'A + B = $'
DATAS ENDS STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;TIP ONE
LEA DX,TIP1
MOV AH,
INT 21H
;GET A
MOV AH,
INT 21H
SUB AL,30H
MOV CL,AL
;TIP TWO
LEA DX,TIP2
MOV AH,09H
INT 21H
;GET B
MOV AH,
INT 21H
SUB AL,30H
ADD CL,AL
ADD CL,30H
;TIP 3
LEA DX,TIP3
MOV AH,
INT 21H ;RESULT
MOV DL,CL
MOV AH,
INT 21H
;TAO LU
MOV AH,4CH
INT 21H
CODES ENDS
END START
【汇编语言】新手第一步——HelloWorld & A+B的更多相关文章
- ElasticSearch第一步-环境配置
ElasticSearch第一步-环境配置 ElasticSearch第二步-CRUD之Sense ElasticSearch第三步-中文分词 ElasticSearch第四步-查询详解 Elasti ...
- Java 学习第一步-JDK安装和Java环境变量配置
Java学习第一步——JDK安装及Java环境变量配置 [原文] 2014-05-30 9:09 Java SE 阿超 9046 views Java作为当下很主流的编程语言,学习Java的朋 ...
- 第一步 django的下载安装
django是python众多web框架中比较有名的一个,以大包大揽功能俱全而著名.但作为重量级的web框架,难免性能上回有所损失,不过由于其封装了各种API,在开发的时候会便利许多.所以也是深受欢迎 ...
- 第一讲 从头开始做一个web qq 机器人,第一步获取smart qq二维码
新手教程: 前言:最近在看了一下很久很久以前做的qq机器人失效了,最近也在换工作目前还在职,时间很挺宽裕的.就决定从新搞一个web qq机器人 PC的协议解析出来有点费时间以后再做. 准备工作: 编译 ...
- Java中JNI的使用详解第一篇:HelloWorld
转自: http://blog.csdn.net/jiangwei0910410003/article/details/17465085 今天开始研究JNI技术,首先还是老套路,输出一个HelloWo ...
- 零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸)
原文:零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸) 本篇内容会教你如何使用笔刷.钢笔.渐层以及透明度的调整,还有如何转化图层和路径,最重要的是要 ...
- JAVA开发第一步 - JDK安装与配置
JDK的安装与环境变量配置是JAVA开发之路的第一步,很多新人在这一步上就卡了很久,浪费了很多时间,甚至有些人就轻易地“从入门到放弃”了.今天我们就来一步步教你如何打倒这第一只拦路虎. 1.JDK下载 ...
- 开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux
开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病, 比如: 说什么Application目录不可写, 比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime ...
- Scala的第一步
第一步:学习使用Scala解释器 开始Scala最简单的方法是使用Scala解释器,它是一个编写Scala表达式和程序的交互式“shell”.在使用Scala之前需要安装Scala,可以参考 Firs ...
随机推荐
- MVC的TryUpdateModel
MVC的TryUpdateModel 我们在使用MVC的时候,给model赋值只需要 TryUpdateModel(model) 就搞定了,而在webForm,winForm中,我们要写长长的 xx. ...
- c#分部类型详解
一.先看代码来理解 代码一 class ClassA { void A(){;} void B(){;} } 代码二 partial class ClassA { void A(){;} } part ...
- Linux下的C程序如何调用系统命令,并获取系统的输出信息到C程序中
直接贴代码: #include <stdio.h> #include <string.h> #include <errno.h> int main(int argc ...
- leetcode第12题--Integer to Roman
Problem: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range ...
- POJ 3602 Typographical Ligatures
[题意简述]:题意就是输入一串字符串,问我们有多少种不同的字符,也就是说出现过一次的字符,下次就不记到种数中了,特别的有 ff, fi ,fl ,ffi ,ffl,'',``, 这几个每一个算是一种 ...
- [问题]安装express,已经加了-g,还是找不到express命令
安装express时使用如下命令: npm install -g express 但是在命令行还是找不到express 手动将路径D:\Program Files (x86)\nodejs\node_ ...
- Coding the Matrix Week 1 The Vector Space作业
Coding the Matrix: Linear Algebra through Computer Science Applications 本周的作业较少,只有一个编程任务hw2.作业比较简单,如 ...
- C语言基础复习总结
C语言基础复习总结 大一学的C++,不过后来一直没用,大多还给老师了,最近看传智李明杰老师的ios课程的C语言入门部分,用了一周,每晚上看大概两小时左右,效果真是顶一学期的课,也许是因为有开发经验吧, ...
- UML和模式
UML和模式应用学习笔记-2(迭代和进化式开发) 一:什么是迭代和进化式开发 1:迭代和进化式开发:通常会在还没有详细定义所有需求的情况下假设开发开始,同时使用反馈来明确和改进演化中的规格说明: ...
- GCC/G++ 学习笔记
本文是<An introduction to GCC>的学习笔记,记录使用GCC/G++主要的实用技巧,本文讲述的知识基本上摘自本书,附带自己的一些体验.如果想详细查看本书,请戳这里. 一 ...