汇编语言程序设计笔记——基础知识(hello world)

汇编语言基础知识

程序语言分类

机器语言:二进制指令
汇编语言:在机器语言的基础上加入助记符等
高级语言

应用领域

  • 加密解密
  • 逆向分析
  • 病毒分析与防治
  • 网络安全领域
  • 驱动程序的开发

基础构成(以hello world为例)

.model tiny;指定程序规模tiny\small\compact等
.code;创建代码段
.startup;指定程序开始执行起始点
	mov dx,offset string;将string字符串首地址送入dx寄存器中,offset的功能就是得到标号到数据段起始地址的距离
	mov ah,9;调用9号显示字符串功能
	int 21h;调用中断服务程序
.exit 0;程序结束指令
string db 'Hello,World!',0dh,0ah,'$';定义字符串,0dh、0ah分别是回车(行结束)、换行的ASCII码值
end;汇编语言程序结束标志

####A little question
为什么字符串定义中既然有换行了,还要输入回车?
我综合了一下网上的解释:
0dh代表的回车:回到行首\标志该行的结束(有争议)
0ah代表的换行:进入下一行

那么回车的作用到底是什么呢?不如一起去实验一下
在asm文件中,我删除了字符串定义末尾的0dh,即删掉了回车功能,如下图所示:

.model tiny	
.code		
.startup	
			mov     dx,offset string  
			mov    ah,9                    
			int       21h                   
			.exit 0			
			string db  'Name:yuanmengyao',0ah
			db 'Number:201886013',0dh,0ah
			db 'Emai:971180567',0dh,0ah,'$' 
end 			

运行之后的输出结果如下:
在这里插入图片描述
!!!竟然没有变化
我推测是换行符0ah发挥了作用,因此我删除了换行符,只保留回车符

.model tiny	
.code		
.startup	
			mov     dx,offset string  
			mov    ah,9                    
			int       21h                   
			.exit 0			
			string db  'Name:yuanmengyao',0dh
			db 'Number:201886013',0dh,0ah
			db 'Emai:971180567',0dh,0ah,'$' 
end 			

输出结果如下
在这里插入图片描述
可见,第一行的name被覆盖了,因此我更倾向于0dh的作用是将光标移至行首

生成可执行文件
  1. 编译汇编源文件:Masm.exe Hello.asm
  2. 链接生成可执行文件:Link.exe Hello.obj/tiny
  3. 运行可执行文件,检查结果:Hello.com

需要注意的是,在使用DOSBOX的时候,路径中应包含所需的masm.exe等所有exe文件,否则无法运行。即下示doswork路径中,应包含所有的exe文件。

mount c: e:\doswork\
c:

作业

在这里插入图片描述

.model tiny	
.code		
.startup	
			mov     dx,offset string  
			mov    ah,9                    
			int       21h                   
			.exit 0			
			string db  'Name:yuanmengyao',0dh,0ah
			db 'Number:201886013',0dh,0ah
			db 'Phone:13079893635',0dh,0ah
			db 'Email:971180567@dlut.edu.cn',0dh,0ah,'$' 
end 			

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
cda备考学习学习笔记——基础知识篇(二)主要涉及了计算机科学与技术领域的基本概念和知识。 首先,它介绍了计算机网络的基础知识。网络是将多台计算机通过通信链路连接起来,使它们能够相互通信和共享资源的系统。笔记中详细介绍了网络的组成、拓扑结构和通信协议等重要内容。 其次,笔记还解释了计算机系统的基本组成。计算机系统由硬件和软件两部分组成,其中硬件包括中央处理器、存储器、输入输出设备等,而软件则分为系统软件和应用软件。笔记详细介绍了各种硬件和软件的功能和作用。 此外,笔记还对数据库管理系统进行了介绍。数据库管理系统是一种用于管理和组织数据的软件系统,它能够实现数据的存储、检索和更新等操作。笔记中详细介绍了数据库的概念、结构和操作等内容。 最后,笔记还包括了算法和数据结构的基础知识。算法是解决问题的一系列步骤和规则,而数据结构则是组织和存储数据的方式。笔记中介绍了常用的算法和数据结构,如排序算法、树和图等。 总之,通过学习CDA备考学习笔记中的基础知识篇(二),我们能够更好地理解计算机网络、计算机系统、数据库管理系统以及算法和数据结构等相关概念和知识。这些基础知识对于我们深入研究计算机科学与技术领域是非常重要的,也为我们日后的学习和工作奠定了坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值