- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MCS指令系统汇编语言程序设计基础
第4章 学习要求 熟悉每一条指令,能读懂程序;熟悉每条指令对硬件资源的影响; 学会编写简单程序; (要以111条指令为基础,不可编造指令) 学会人工汇编程序,会计算rel; 通过指令的学习,进一步加深对硬件资源的理解。 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * 短跳转 AJMP addr11 ; PC ←(PC)+ 2, ; PC10~0 ← addr11 该指令执行时,先将PC的内容加2(这是PC指向的是AJMP的下一条指令),然后把指令中11位地址码传送到PC10~0,而PC15~11保持原内容不变。 在目标地址的11位中,前3位为页地址,后8位为页内地址(每页含256个单元)。 长跳转 LJMP addr16 ;PC ← addr16 第一字节为操作码,该指令执行时,将指令的第二、三字节地址码分别装入指令计数器PC的高8位和低8位中,程序无条件地转移到指定的目标地址去执行。 LJMP提供的是16位地址,因此程序可以转向64KB的程序存储器地址空间的任何单元。 例 若标号“NEWADD”表示转移目标地址1234H。执行指令 LJMP NEWADD 时,两字节的目标地址将装入PC中,使程序转向目标地址 1234H 处运行。 空操作 NOP ;PC ←(PC)+ 1 这条指令不产生任何控制操作,只是将程序计数器PC的内容加1。该指令在执行时间上要消耗1个机器周期,在存储空间上可以占用一个字节。因此,常用来实现较短时间的延时。 散转指令 JMP @A+DPTR ;PC ←(PC)+ 1,PC ←(A)+(DPTR) 该指令具有散转功能,可以代替许多判别跳转指令。其转移地址由数据指针DPTR的16位数和累加器A的8位数进行无符号数相加形成,并直接装入PC。该指令执行时对标志位无影响。 例 有一段程序如下: MOV DPTR,#TABLE JMP @A+DPTR TABLE:AJMP ROUT0 AJMP ROUT1 AJMP ROUT2 AJMP ROUT3 当(A)=00H时,程序将转到 ROUT0处执行;当(A)=02H时,程序将转到 ROUT1处执行;其余类推。 一个补充知识(补码) 补码(twos complement) 1、在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 2、补码与原码的转换过程几乎是相同的。 正数的补码,是其本身 +9的补码 负数的补码 符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。 例子:求-7的补码 后七位:+7的原码(0000111)→按位取反(1111000)→加1(1111001) 所以-7的补码 相对转移 SJMP rel ;PC ←(PC)+ 2,PC ←(PC)+ rel 第一字节为操作码,第二字节为相对偏移量 rel,rel 是一个带符号的偏移字节数(2的补码),取值范围为 +127 ~-128(00H~7FH对应表示0 ~ +127,80H~FFH对应表示 -128~-1)。负数表示反向转移,正数表示正向转移。 rel 可以是一个转移目标地址的标号,由汇编程序在汇编过程中自动计算偏移地址,并填入指令代码中。在手工汇编时,可用转移目标地址减转移指令所在的源地址,再减转移指令字节数2得到偏移字节数rel。 例 若标号“NEWADD”表示转移目标地址0123H,PC的当前值为0100H。执行指令 SJMP NEWADD 后,程序将转向 0123H 处执行(此时re l= 0123H-(0100+2)= 21H)。 偏移量rel及其计算 相对偏移量rel是一个带符号的8位二进制数,最高位为符号位,
文档评论(0)