vscode较详细注释的汇编语言hello world 输出程序,第一个汇编程序
输出hello world,经典且不失优雅的操作。
在写之前先了解一些知识,会编译连接运行.asm文件
然后看一下汇编程序基本结构,有一点点matlab的感觉
代码段,数据段,附加数据段等。
注释符是分号
具体结构:
;汇编结构**data SEGMENT; 数据段,数据放到这段; 标识符 db/dw 数据;;定义字符串---- stri db "abdcsadabdahsd"
data ENDS** edata SEGMENT ;附加数据段;附加数据部分.
edata ENDS **code SEGMENT ;代码段,程序具体代码
ASSUME CS:code,DS:data,ES:edata 'data段是数据段DS,code段是代码段CS,ES附加段start:;代码区
code ENDS**
END start ;程序结束,并且程序执行时由start开始执行。
然后是hello world程序:
1.定义数据段:
DATA SEGMENT ;定义数据段MYWORD DB "hello world!!!$";定义数据字符串
DATA ENDS
2.定义代码与具体代码
CODE SEGMENT;定义代码段ASSUME CS:CODE,DS:DATA;表明谁是代码段,谁是数据段
start:MOV AX,DATA;数据首地址赋值给AX,AX是寄存器,累加器MOV DS,AX;使得DS等价于AX,同样指向数据段LEA DX,MYWORD;使DX寄存器指向数据变量word首地址MOV AH,09h;AH输出数据INT 21h;执行AH的09h功能,输出MOV AX,4c00h;设置寄存器功能INT 21h;调用寄存器功能,结束程序
CODE ENDS
3,结束
END start;代表结束程序并且在start处执行程序
完整代码截图:
然后编译连接ok,不知道怎么做的话
可以看我的另一篇总结文章,
dosbox下自动mount
其实vscode有个快捷生成段的方法:
.code
.data
得到
但是不知道为什么编译老是不过,最后老实的将_text$00等改了,
知道原因的网友,可以私信告诉我一下,谢啦,共同进步
ps: vscode插件: MASM 可以编写汇编代码,不是评论里的MSAM,是我打错了。。。
不过vscode只是能编辑代码,编译链接运行还是要使用DOSBOX(虚拟的一个32位运行环境的软件),配合四个exe文件进行编译链接运行就好啦。
vscode较详细注释的汇编语言hello world 输出程序,第一个汇编程序相关推荐
- 汇编语言复习摘要四——第一个汇编程序
1. 程序执行流程:简单说下,编写汇编程序->对程序进行编译和链接(注意,是两个动作)->执行可执行文件.操作系统将依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进 ...
- uboot 详细注释讲解
转自:http://home.eeworld.com.cn/my/space-uid-135723-blogid-25548.html uboot 详细注释讲解 标签: uboot 注释 讲解 ...
- 汇编实验 用表格形式显示字符(附源码详细注释和相关注意的知识)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_40774175/article/ ...
- malloc 源码_【C++学习笔记(九)】之 new运算符的使用/ new 与 malloc的异同(附代码,详细注释)...
new 运算符的使用 一. new的简单介绍: new运算符用于在堆区开辟空间,所有new出来的对象,对返回该类对象的指针. 二. new 与 malloc 的异同点: 1.malloc作用相同, m ...
- 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释
题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ...
- 【详细注释】1058 选择题 (20 分)
立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整 ...
- step7db块寻址_step7中的难点:间接寻址示例,中文详细注释。
step7中的难点:间接寻址示例,中文详细注释. 推荐欢迎纠错,防止误导. FUNCTION "DBtoDB" : VOID //该功能块的作用是把一个数据块中的指定的一批数据,复 ...
- 快速傅里叶变换(FFT)的C#实现及详细注释
快速傅里叶变换(FFT)的C#实现及详细注释 ----------------------------------------------------------------------------- ...
- createsamples.cpp中生成vec文件的实现及详细注释、图解——人脸识别的尝试系列(三)
在我们开始训练我们的Haar分类器之前,首先要对样本进行处理. 人脸识别的尝试系列(一)中:http://blog.csdn.net/u011583927/article/details/446274 ...
最新文章
- linux内核和cpu指令集,Linux之父:Intel别浪费时间在AVX512这类指令集、多堆核心才是正道...
- JSP基本语法:文件结构、脚本元素、指令元素、动作元素
- Android开发实践:在任意目录执行NDK编译
- 强大的表格控件handsometable,结合vue
- python字典实现关键字检索_如何实现搜索框的关键词提示功能
- HTML中字体的垂直排列
- DataWorks功能实践速览 05——循环与遍历
- 模型评估准确率、召回率、ROC曲线、AUC总结
- C/C++打造Windows岁月留声机
- 【LeetCode笔记】17.电话号码的字母组合(Java、DFS)
- Vue - 条件渲染与列表渲染
- (转) RabbitMQ学习之spring整合发送同步消息(注解实现)
- xadmin获取mysql_Django+Xadmin构建项目的方法步骤
- “原本我不会在拼多多购物,但它补贴实在太多了”
- opencv基础:相机参数标定(camera calibration)及标定结果如何使用
- 多重搜索算法_Android多重搜寻,例如传送,搜寻联络人
- python学习之记事本
- 国开大学计算机应用实操题作业如何上传,国开电大18秋《计算机应用基础》形考任务作业.doc...
- [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.13
- 感知特性评价指标SSIM
热门文章
- JAVA web 会话技术CookieSession
- mysql Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nona
- Educational Codeforces Round 41(已补D,E)
- python初步学习-查看文档及数据类型转换
- highcharts总结
- Nginx-----相关配置-详细介绍
- BZOJ 3203 sdoi 2013 保护出题人
- 在利用计算机生成,计算机生成人像,从而使人脸的模糊变为现实
- [Python人工智能] 三.theano实现分类神经网络及机器学习基础
- 【数据结构与算法】之深入解析“石子游戏IX”的求解思路与算法示例