EDA365电子论坛网
标题:
单片机汇编器的设计与实现
[打印本页]
作者:
TaylorA
时间:
2020-2-11 13:52
标题:
单片机汇编器的设计与实现
+ x6 b6 z$ X# {, Q3 n# L
摘要:单片机开发系统主要由单片机交叉汇编程序和仿真程序两个模块组成,其中单片机交叉汇编程序是由单
6 x: F3 S+ m9 U
片机汇编器来实现。本文主要介绍了汇编器设计方法及实现过程,通过运用传统的两遍扫描的算法,并对不同
5 W6 f- V& |, N6 p; E9 e
的模块进行了划分和优化。我们可以通过简单的模块改动就能使其应用于不同类型的单片机中。
( R- J& H: a/ v. O8 m/ g
* B1 A! J* g& v' L' \9 [
关键词:单片机 开发系统 汇编 两遍扫描
5 H3 n5 K6 z5 j# A/ V
7 L! a3 h: @: C8 _5 c5 M% }
单片机应用技术是目前最广泛的- -项计算机控制技术,
$ o; u2 Q; u2 ~3 c
近几年,随着单片机技术的迅速发展,各种高性能的单片机纷
5 N9 T: r9 R6 J
纷出现,这些单片机具有集成度高、.体积小、功耗低、性价比高
# V5 o+ n5 r% H& G
等诸多优点,被广泛的应用于智能仪器、工业控制、家用电器
3 e1 C& y6 z) R2 H8 `6 Z$ d6 \. n
等领域,成为系统工程师手中必不可少的开发利器。
) Y4 B v4 L, u
要进行单片机系统的开发,必须要有相应的开发系统。.
; ?8 @! f8 D8 Y/ K2 t. R
目前最常用的开发系统主要由单片机交叉汇编程序和仿真程
8 L; X3 u/ F0 s) v# Q% r
序两个模块组成。单片机汇编器的设计主要是为了实现交叉
) v* }+ \7 B6 @6 g
汇编程序,把单片机汇编语言源程序翻译成功能等价的机器
+ q8 T2 @' ?$ }2 M
代码。
|$ `0 V* b: o/ Z1 J% u A
1汇编器的功能
! v' _6 D/ d5 Q# E
汇编器的任务就是将汇编语言的程序源程序翻译为功能
/ \+ g( j# Z9 ~7 x4 [
等价的机器语言的目标程序。所以汇编的过程就是,寻找一
" ~, R: T/ x* H: Q* g( I0 ]! y
组操作将初始化状态的汇编源程序转换成最终的机器语言的
! I8 N- }1 n" P' J
目标程序。
2 A, {& h/ E+ o: ^
汇编器将源程序汇编之后,生成一个目标文件。在这个
9 N, \) t# {, z9 H, _, d
目标文件中,汇编指令已经变成机器可以直接识别的机器语
* o1 P2 H7 ]% [# R& A
言格式,但是其地址是没有经过定位的相对地址,而不是绝对
) b; [ ~% S# G. |, x) w( E
地质。要产生目标文件,汇编器要完成的工作包括:
) P, _7 y2 w Q
(1)对程序中的符号名、标号、常数构造符号表。(2)按用户
7 J; g, A$ l. y3 D1 r7 t
指定分配存储区域,如程序区、数据区、暂存区等。
; I: l P8 B6 Z
(3)计算各表达式的值。
4 ^1 M1 q% {/ a
(4)自动把宏引用进行宏替换,把字符转换成ASCII码,
N0 o* B1 O8 e4 B+ h$ W# w
各种进制数转换成二进制。
$ u; `! j3 g8 Z+ ^; B+ n/ a
(5)自动对源程序进行检查,给出出错信息,如非法格式、
) [0 k! _# m1 c+ s: M/ H8 \
为定义标号和助记符等。
/ |. w7 e0 p% S! M: g$ V. p
(6)产生目标代码。
9 q& ^0 z6 s7 L; k% M
2单片机交叉汇编程序的原理
4 p6 J8 F6 n: ~4 S
汇编语言是计算机能够提供给用户的最快而又最有效的
# m8 U0 s' V- z! C3 x+ h
语言,也是能够利用计算机所有特性并能直接控制硬件的惟
5 X) e: S4 W- {. B5 x' F* ~
一语言,因而在对于程序的空间和时间要求很高的场合,汇编
/ D B3 i. ?" K/ w' W6 s! v; w. ]1 I; ]# c
语言是必不可少的。至于对于很多需要直接控制硬件的应用
' x" \- H2 B/ S, Z' ]2 f2 a6 W& b
场合,则更是必不可少的。
, L! d7 t9 A' P9 w
汇编语言是用助记符、符号和数字等来表示指令的程序
4 L3 b+ I9 Z7 {2 E" \* q9 B& R4 V
语言,容易理解和记忆,它与机器语言指令是- --对应的。单
8 Y7 D( d, g( M2 `% E k7 m
片机汇编语言不像高级语育那样通用性强,而是属于某种单
0 X# v# t7 t8 b1 t7 ^; P
片机所独有,与单片机的内部精简结构密切相关,对于不同型
" m5 ~- r5 M* p2 n
号的单片机所对应的汇编语言是不同的。和其他的程序设计
/ j0 h4 ~3 K! T4 h( y- |' r1 W2 I8 ^9 k
语言一样,汇编语言也有其特定的词法规则和语法规则。词
; K3 X7 ?7 U6 {! ^- S
* T1 ]* t" Z/ e# K. f$ M
: b3 L! ]& k Q Q: Q0 X
附件下载:
3 e8 n" D5 X/ _9 Z- \& b
3 u" F' t6 R3 L* t
: o) ~4 o2 l3 }* F
) k8 m9 b. P, w/ A' x
作者:
wdsdswwaaa
时间:
2020-2-11 13:54
单片机汇编语言不像高级语育那样通用性强,而是属于某种单片机所独有,与单片机的内部精简结构密切相关,对于不同型号的单片机所对应的汇编语言是不同的。
欢迎光临 EDA365电子论坛网 (https://eda365.com/)
Powered by Discuz! X3.2