没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
本文目的是通过 keil 5 编写汇编程序来熟悉汇编语言的相关知识。这里分为两
个部分:第一个部分在 Keil 上练习汇编的编写和调试,同时了解一下 Hex 文件
的格式;第二个部分是使用汇编进行 stm32F103 的点灯实验,用实战的方式来
加深理解。
目录
� (一)汇编语言
�
o
▪ 1.简介
▪ 2.指令
▪ 3.优缺点
� (二)使用 Keil 5 编写汇编程序
�
o
▪ 1.新建汇编工程
▪ 2.新建汇编文件
▪ 3.调试汇编程序
▪ 4.hex 文件简介
� (三)汇编点灯实验
�
o
▪ 1.实验程序
▪ 2.程序分析
▪ 3.实验结果
� (四)总结
(一)汇编语言
1.简介
� 汇编语言(Assembly Language)是一种用于电子计算机、微处理器、微控制
器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符
代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同
的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器
指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间
不可直接移植。
2.指令
� 传送指令
包括通用数据传送指令 MOV、条件传送指令 CMOVcc、堆栈操作指令
PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交换指令
XCHG/XLAT/BSWAP、地址或段描述符选择子传送指令
LEA/LDS/LES/LFS/LGS/LSS 等。
� 逻辑运算
用于执行算术和逻辑运算,包括加法指令 ADD/ADC、减法指令 SUB/SBB、加
一指令 INC、减一指令 DEC、比较操作指令 CMP、乘法指令 MUL/IMUL、除
法指令 DIV/IDIV、符号扩展指令 CBW/CWDE/CDQE、十进制调整指令
DAA/DAS/AAA/AAS、逻辑运算指令 NOT/AND/OR/XOR/TEST 等。
� 移位指令
用于将寄存器或内存操作数移动指定的次数,包括逻辑左移指令 SHL、逻辑右
移指令 SHR、算术左移指令 SAL、算术右移指令 SAR、循环左移指令 ROL、
循环右移指令 ROR 等。
� 位操作
包括位测试指令 BT、位测试并置位指令 BTS、位测试并复位指令 BTR、位测
试并取反指令 BTC、位向前扫描指令 BSF、位向后扫描指令 BSR 等。
� 控制转移
包括无条件转移指令 JMP、条件转移指令 JCC/JCXZ、循环指令
LOOP/LOOPE/LOOPNE、过程调用指令 CALL、子过程返回指令 RET、中断指
令 INTn、INT3、INTO、IRET 等。
� 串操作
用于对数据串进行操作,包括串传送指令 MOVS、串比较指令 CMPS、串扫描
指令 SCANS、串加载指令 LODS、串保存指令 STOS,这些指令可以有选择地
使用 REP/REPE/REPZ/REPNE 和 REPNZ 的前缀以连续操作。
� 输入输出
用于同外围设备交换数据,包括端口输入指令 IN/INS、端口输出指令
OUT/OUTS。
3.优缺点
� 优点
o 可以轻松的读取存储器状态以及硬件 I/O 接口情况
o 编写的代码因为少了很多编译的环节,可以能够准确的被执行
o 作为一种低级语言,可扩展性很高
� 缺点
o 程序非常单调,特殊指令字符很少,造成了代码的冗长以及编写的困难
o 仍然需要自己去调用存储器存储数据,很容易出现 BUG,而且调试起来也不容
易;就算完成了一个程序,后期维护时候也需要耗费大量的时间,因为机器的
特殊性造成了代码兼容性差的缺陷。
(二)使用 Keil 5 编写汇编程序
1.新建汇编工程
� 选择 Project->New uVision Project...
� 给新建的工程命名并保存到到相应的位置,我这里命名为 test
� 由于后面会涉及到 STM32 的点灯实验,因此这里需要选择使用的硬件支持,
这里我使用的是 STM32F103ZET6 所以选择 STM32F103ZE 即可
剩余29页未读,继续阅读
资源评论
smartsmile2012
- 粉丝: 863
- 资源: 83
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功