| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 【汇编系列-1】汇编语言的基本程序结构及helloworld示例(内含“最简化程序”呈现过程proc和宏macro的基本使用方法) -> 正文阅读 |
|
[开发工具]【汇编系列-1】汇编语言的基本程序结构及helloworld示例(内含“最简化程序”呈现过程proc和宏macro的基本使用方法) |
刚开始学习微机原理课程的时候,对汇编语言编程曾经有种无从下手的感觉。经过一个学期的练习,对汇编语言熟悉了不少,想要整理一篇文章来帮助一下刚入门的汇编小白。 一、编程环境简单先提一句编程环境的选择,我比较建议VScode,安装相对比较方便,而且功能比较齐全,可以tab补全、代码折叠,也可以方便地查看寄存器内容。而且,VScode软件的启动速度挺快的,所占用的存储空间也很能接受,并不是很笨重的软件! 安装:VScode直接去官网下载就行了https://code.visualstudio.com/,然后安装VScode里面的MASM/TASM插件即可,安装过程可以参考其他文章,这里不再赘述。 二、helloworld示例及运行新建一个文件,选择assembly(DOS)语言,然后把下面这段代码复制过去:
在VScode里面应该是这样的: 然后右键选择“运行当前程序(汇编+链接+运行)”,即可运行程序 运行结果如下图所示: 注:一般而言完整的程序有三个段:数据段、堆栈段和代码段。 最前面的TITLE为程序标题(可写可不写,为程序的说明)。 HelloWorld程序用到的为字符串的显示,其中DispTEXT变量定义一开始的“10”为换行符的ASCII码(不使用回车的ASCII码,原因是汇编语言中回车会使字符从一行的最开始进行显示,而非换行显示,会出现覆盖);字符串必须以$结尾,否则程序不知道显示到哪里结束;使用INT21H(DOS)的09号功能,显示以$为结尾的字符串,字符串的首地址预先存在DX寄存器中。 三、一些排错(如果上一步正确运行了可以不看)
四、查看寄存器的debug方法作为初学者,一般需要通过查看寄存器的方法了解汇编语言的运作方式,偶尔也会通过查看寄存器进行debug。 选择“View-CPU”即可查看寄存器,如下图所示: 一般用 (Fn+)F8进行调试(会跳过过程) 五、过程PROC的使用将HelloWorld程序的主程序代码用“过程”包装后的代码如下:
注:
六、宏MACRO的使用将HelloWorld程序的主程序代码用“宏”包装后的代码如下:
注:
宏和过程的区别:
因此,在子程序本身较短,参数较多的情况下,用宏指令更有效; 所以可知,HelloWorld程序比较合适的包装方式为“过程”而非“宏”。 七、完整程序示例简单的冒泡排序(降序)并显示
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 10:07:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |