- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 汇编语言程序设计 3.1 汇编源程序格式 指令行的语法: 3.2 汇编器及其调用 汇编选项 为汇编器的输入指定另外的文件和目录:P242 3.3 汇编语言中的常数与字符串 支持7种类型的常数: IEEE双精度浮点表示法 P242 3.4 汇编伪指令 P236 1、定义段的伪指令: .bss 定义后面的代码为未初始 化的数据保留段 .clink 满足条件才链接; .data 定义初始化的数据段 .sect 为已初始化的段,可以是 数据段或者可执行的指令代码 .text 为文本段 .usect 未初始化的段保留空间 链接器的对段的处理 CMD文件的编写 3.对准段程序计数器的伪指令 .align 用来寻找指定的字的边界;默认128 .even 用来寻找下一个字或者一个长字的边界; 4.输出清单文件的格式化指令 .drnolist / .drlist .length 控制清单文件的页面长度; .list / .nolist 允许/关闭清单文件的输出; .mlist /.mnolist 允许/关闭“宏和循环块”出现在 清单文件中; .option 5. 引用其他文件的伪指令 .copy/.include .def 定义当前模块的符号,可以被其他模 块使用; .ref 指出当前使用的符号是其他模块所定 义的; .global 定义全局符号 6.条件汇编伪指令 .if/.elseif/.else/.endif .loop/.break/.endloop 8. 混和伪指令 .end .mmregs .mmregs定义的片外映像寄存器 清单文件的特殊符号 宏 堆栈的使用 例程1: 例程2 PMST: ST0: ST1: 例程: ;Target: ; Test the effect of flag bits in ST0, ST1 ;****************************************************** ; Const definition STACK_ADDR .set 0x0500 ;bottom of stack .mmregs .global main ; .text main: stm #STACK_ADDR, SP ;set stack stm #0x00A8, PMST ;relocate Interrupt ;Vector Table stm #0x0000, SWWSR ;no software wait ;for all memory ;put a value for future use, *(0x2000) = 0xff80 stm #0x2000, AR2 st #0xff80, *AR2 ;test SXM ;watch A to understand sign extension ssbx SXM nop ld *AR2, A ;A=FF FFFF FF80 rsbx SXM nop ld *AR2, A ;===============A=00 0000 FF80 * 标号: 指令 操作数 ;注释 例: SYM1 .set 2 ;符号SYM1=2 Begin LD #SYM1, AR1 ;将2装入AR1 .word 016H ;初始化字(016H) .copy “filename” .include “filename” .mlib “filename” 1、二进制整型;0100000B=32(十进制) 2、八进制整型; 10Q=8 3、十进制整型; 1000=1000 4、十六进制整型; 0FH=15 0x0F=15 5、字符常数; “a”=61H 6、浮点常数;必须带小数点 一般表示:小数 ±3.14 指数 ±314e-2 7、汇编-时间常数:用.set伪指令赋一常数给某个符号。 s e f 31 30-23 22-0 常见的情况: 0e256,该数据值的十进制数为: (-1)^s×2^(e - 127)×1.f 例子:X = 456,把它用IEEE双精度浮点数表示 S = 0; e=127+8(靠近X最大的二进制数); f = (456/256-1)*Q23=110010000000000
文档评论(0)