汇编基本指令_第1页
汇编基本指令_第2页
汇编基本指令_第3页
汇编基本指令_第4页
汇编基本指令_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、16位机根据指令字长、操作数不同可划分为如下位机根据指令字长、操作数不同可划分为如下5种指令格式:种指令格式: 1单字、无操作数指令单字、无操作数指令 基本指令基本指令 PSHF; 状态标志状态标志(C、Z、V、S、Pl、P0)入栈入栈 P0PF; 弹出栈顶数据送状态标志寄存器弹出栈顶数据送状态标志寄存器 RET; 子程序返回子程序返回 扩展指令扩展指令 CLC; 清进位标志位清进位标志位C0 STC; 置进位标志位置进位标志位Cl EI; 开中断,置中断允许位开中断,置中断允许位INTE1 DI; 关中断,置中断允许位关中断,置中断允许位INTE0 IRKTl 中断返回中断返回 2单字、单操

2、作数指令单字、单操作数指令 基本指令基本指令 DEC DR; DRDR1 1NC DR; DRDR十十1 SHL DR; DR逻辑左移,最低位补逻辑左移,最低位补0,最高位移入,最高位移入C SHR DR; DR逻辑右移,最高位补逻辑右移,最高位补0,最低位移入,最低位移入C JR ADR; 无条件跳转到无条件跳转到ADR,ADR原原PC值十值十0FFSET JRC ADR; 当当C1时,跳转到时,跳转到ADR,ADR原原PC值值+0FFSET JRNC ADR;当当C0时,跳转到时,跳转到ADR,ADR原原PC值值+0FFSET JRZ ADR; 当当Z1时,跳转到时,跳转到ADR,ADR原

3、原PC值值+0FFSET JRNZ ADR; 当当Z0时,跳转到时,跳转到ADR,ADR原原PC值十值十0FFSET IN I/0 P0RT; R0I/0 P0RT,从外设,从外设I/0 P0RT端口读人数据到端口读人数据到R0 0UT I/0 P0RT;I/0 P0RTlR0,将,将R0中的数据写入外设中的数据写入外设I/0 P0RT端端口口 PUSH SR; SR人栈人栈 P0P DR; 弹出栈顶数据送弹出栈顶数据送DR (3)扩展指令扩展指令 RCL DR; DR与与C循环左移,循环左移,C移人最低位,最高位移入移人最低位,最高位移入C RCR DR; DR与与C循环右移,循环右移,C移

4、人最高位,最低位移人移人最高位,最低位移人C ASR DR; DR算术右移,最高位保持不变,最低位移人算术右移,最高位保持不变,最低位移人C N0T DR; DR求反,即求反,即DRDR JMPR SR; 无条件跳转到无条件跳转到SR指向的地址指向的地址 CALR SR; 调用调用SR指向的子程序指向的子程序 JRS ADR; 当当Sl时,跳转到时,跳转到ADR,ADR原原PC值十值十0FFSET JRNS ADR;当;当S0时,跳转到时,跳转到ADR,ADR原原PC值十值十0FFSET 3单字、双操作数指令单字、双操作数指令 基本指令基本指令 ADD DR,SR; DRDR十十SR SUB

5、DR,SR; DRDRSR AND DR,SR; DRDR and SR CMP DR,SR; DRSR X0R DR,SR; DRDR xor SR TEST DR,SR; DR and SR 0R DR,SR; DR4DR 0r SR MVRR DR,SR; DRSR LDRR DR,SR; DRSR STRR DR,SR; DR4SR 扩展指令扩展指令 ADC DR,SR; DRDR十十SR十十C SBB DR,SR; DRDRSRC4双字、单操作数指令双字、单操作数指令基本指令基本指令 JMPA ADR; 无条件跳转到地址无条件跳转到地址ADR CALA ADR; 调用首地址为调用首地

6、址为ADR的于程序的于程序 5双字、双操作数指令双字、双操作数指令 基本指令基本指令 MVRD DR,DATA; DRDATA 扩展指令扩展指令 LDRA DR,ADR; DRADR STRA ADR,SR; ADRSR LDRX DR,0FFSETSR; DR0FFSET十十SR STRX DR,0FFSETSR; 0FFSET十十SRDR 16位教学计算机的简单汇编程序设计举例位教学计算机的简单汇编程序设计举例 例例31 在显示器屏幕上循环显示在显示器屏幕上循环显示95个可打印个可打印ASCII字符。字符。 2000: MVRD R1,7E ;向寄存器传送直接数;向寄存器传送直接数 200

7、2: MVRD R0,20 2004: 0UT 80 ;通过串行接口输出;通过串行接口输出R0低位字节内容低位字节内容 2005: PUSH R0 ;保存;保存R0寄存器的内容到堆栈中寄存器的内容到堆栈中 2006: IN 81 ;读串行接口的状态寄存器的内容;读串行接口的状态寄存器的内容 2007: SHR R0 ;R0寄存器的内容右移寄存器的内容右移位位 2008: JRNC 2006 ;当标志位;当标志位C不是不是l时就转移到时就转移到2006地址地址 2009: P0P R0 ;从堆栈中恢复;从堆栈中恢复R0寄存器的原内容寄存器的原内容 200A: CMP R0,R1 ;相同则标志位;

8、相同则标志位z1 200B: JRZ 2000 ;当标志位;当标志位z为为1时就转移到时就转移到2000地址地址 200C: INC R0 ;把;把R0寄存器的内容增加寄存器的内容增加l 200B: JR 2004 ;无条件转移指令,转移到;无条件转移指令,转移到2004地址地址 200F: RET ;子程序返回指令;子程序返回指令 例例32 把字符把字符“A” “F”写到内存的写到内存的20402045几个单元,几个单元, 之后再读出来并显示到屏幕上。之后再读出来并显示到屏幕上。 2020: MVRD R3,06 ;给出写内存操作的次数;给出写内存操作的次数 2022: MVRD R2,20

9、3F 2024: MVRD R1,40 2026: INC R2 ;给出写内存操作的内存地址;给出写内存操作的内存地址 2027: INC R1 ;给出写内存操作的数据内容;给出写内存操作的数据内容 2028: STRRR2,R1 2029: LDRR R0,R2 ;读出内存单元的数据到;读出内存单元的数据到R0寄存器寄存器 202A:0UT 80 202B:IN 8l 202C:SHR R0 202D:JRNC 202B 202E:DEC R3 ;检查;检查6次写内存操作是否完成次写内存操作是否完成 202F:JRNZ 2026 ;末完则开始下;末完则开始下次写内存操作次写内存操作 2030

10、:RET ;程序结束;程序结束 例例33 从键盘输入字符并送到显示器屏幕显示。从键盘输入字符并送到显示器屏幕显示。 利用子程序将大写英文字母变为小写并将其显示出来。利用子程序将大写英文字母变为小写并将其显示出来。 2040: IN 81 ;检查有无敲击过键盘上的一个键;检查有无敲击过键盘上的一个键 2041: SHR R0 2042: SHR R0 2043: JRNC 2040 2044: IN 80 2045: 0UT 80 ;输出;输出R0低位字节内容到显示器屏幕低位字节内容到显示器屏幕 2046: PUSH R0 2047: IN 8l 2048: SHR R0 2049: IRNC 2047 204A: P0P R0 204B: CALA 2050 ;调用子程序;调用子程序 204D: JMPA 2040 ;转移指令,转移地址为;转移指令,转移地址为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论