第5章 指令与指令系统和汇编语言程序设计_第1页
第5章 指令与指令系统和汇编语言程序设计_第2页
第5章 指令与指令系统和汇编语言程序设计_第3页
第5章 指令与指令系统和汇编语言程序设计_第4页
第5章 指令与指令系统和汇编语言程序设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第第5 5章章指令、指令系统和汇编指令、指令系统和汇编语言程序设计语言程序设计u 计算机计算机指令指令指挥指挥计算机硬件运行的计算机硬件运行的命令命令由若干个二进制位组成的由若干个二进制位组成的位串位串(信息体)(信息体)计算机硬件可直接识别和执行计算机硬件可直接识别和执行计算机运行的最小功能单元计算机运行的最小功能单元一台计算机提供的全部指令构成该计算机的一台计算机提供的全部指令构成该计算机的指令系统指令系统指令概述、功能指令概述、功能计算机系统计算机系统硬件硬件软件软件为使用硬件而编制的、由为使用硬件而编制的、由一系列的一系列的计算机指令计算机指令组成组成CPU存储器存储器外围设备外围设备

2、 具体一点说,可以把设计要求归纳如下:具体一点说,可以把设计要求归纳如下:完备性完备性:指令齐全,编程方便:指令齐全,编程方便规整性规整性:格式与运算规则统一:格式与运算规则统一高效性高效性:占内存少,运行省时占内存少,运行省时兼容性兼容性:同一系列机软件兼容:同一系列机软件兼容使用者:程序员,希望使用者:程序员,希望用它设计程序用它设计程序简单、方便简单、方便实现者:硬件设计者,希望实现者:硬件设计者,希望节省、高效节省、高效实际上,这两方面的要求经常矛盾。实际上,这两方面的要求经常矛盾。(如何折中?)(如何折中?)对设计指令系统的要求对设计指令系统的要求确定指令系统的两种思路确定指令系统的

3、两种思路 从降低硬件系统构成的复杂度、提高指令执行从降低硬件系统构成的复杂度、提高指令执行速度和并行性考虑,确定指令系统的两种思路:速度和并行性考虑,确定指令系统的两种思路:w 精简精简指令系统计算机指令系统计算机w 指令指令数目较少数目较少、格式与功能格式与功能简单简单、运行高效运行高效w 追求计算机控制器实现追求计算机控制器实现简单简单,运行高速,更运行高速,更容易容易在单块超大在单块超大规模集成电路芯片内制做规模集成电路芯片内制做w 指令并行性指令并行性好好w 复杂复杂指令系统计算机指令系统计算机w 指令条数多指令条数多,格式多样格式多样,寻寻址方式复杂址方式复杂,每条,每条指令的功能指

4、令的功能强强,汇编程序设计容易些,汇编程序设计容易些w 计算机控制器的实现计算机控制器的实现困难多困难多,很多指令使用机会少。很多指令使用机会少。w指令并行度指令并行度差差RISCReduced Instruction Set ComputerCISCComplex Instruction Set Computer指令格式指令格式指令格式指令格式:指令字指令字:完整的一条指令的:完整的一条指令的二进制表示二进制表示指令字长指令字长:指令字中二进制代码的位数:指令字中二进制代码的位数机器字长:计算机能直接处理的二进制数据的位数机器字长:计算机能直接处理的二进制数据的位数指令字长(字节倍数)指令字

5、长(字节倍数)0.5、1、2个机器字长个机器字长定长指令字结构定长指令字结构 vs. 变长指令字结构变长指令字结构操作码操作码 操作数操作数 指令的操作功能,指令的操作功能,确定、唯一确定、唯一指令的操作对象或指令的操作对象或操作对象的地址操作对象的地址操作码组织与编码操作码组织与编码定长操作码定长操作码 用用固定若干位固定若干位表示操作码,有利于简化计算机硬件设计,表示操作码,有利于简化计算机硬件设计,提高指令译码和识别速度。提高指令译码和识别速度。 例如:例如:TEC-2000的的16位机位机操作码位数限制指令系统中操作码位数限制指令系统中指令条数指令条数!操作码操作码(mbit)操作数操

6、作数(nbit)变长操作码变长操作码 用用固定长度固定长度的字段表示的字段表示基本操作码基本操作码,把,把较短较短操作数地址操作数地址字段中字段中多余位多余位用作用作扩展指令操作码扩展指令操作码,可缩短平均指令长度,可缩短平均指令长度,但增加了译码和分析难度。但增加了译码和分析难度。 例如:例如:TEC-2000的的8位机位机基本指令操作码基本指令操作码(mbit)操作数操作数(nbit)扩展指令操作码扩展指令操作码(m+r bit)操作数操作数(n-r bit)指令操作数个数指令操作数个数 无操作数指令(零地址指令)无操作数指令(零地址指令) 单操作数指令(一地址指令)单操作数指令(一地址指

7、令) 双操作数指令(二地址指令)双操作数指令(二地址指令) 三操作数指令(二地址指令)三操作数指令(二地址指令) 多操作数指令(多地址指令)多操作数指令(多地址指令)指令操作数来源和去向指令操作数来源和去向 CPU内部的通用寄存器:寄存器编号或名称内部的通用寄存器:寄存器编号或名称 I/O设备(接口)的寄存器设备(接口)的寄存器 :端口地址:端口地址 主存储器的存储单元:内存地址主存储器的存储单元:内存地址操作数个数与来源操作数个数与来源OP A1 A2OP A1OPOP A1 A2 A3OP A1 A2 更多更多 假设某机器的指令长度为假设某机器的指令长度为16位,包括位,包括 4位基本位基

8、本操作码和三个操作码和三个 4位地址码段。位地址码段。 15 12 118 7 4 30 OP A1 A2 A3 4 位基本操作码可表示位基本操作码可表示 16个状态,个状态,如用如用 4 位操作码,则能表示位操作码,则能表示 16 条条三地址三地址指令,指令,若用若用 8 位操作码,则可表示位操作码,则可表示 256 条条二地址二地址指令,指令,若用若用12位操作码,则可表示位操作码,则可表示 4096条条一地址一地址指令,指令,若若16位全用作操作码,则可表示位全用作操作码,则可表示 65536条条零地址零地址指令指令操作码的扩展技术操作码的扩展技术 若需要在若需要在16位字长的指令中能够

9、同时支持三地址、二位字长的指令中能够同时支持三地址、二地址、一地址指令各地址、一地址指令各15条,零地址指令条,零地址指令16条,则可以选用条,则可以选用如下方案的变长操作码实现:如下方案的变长操作码实现: 16条零地址指令的操作码的高条零地址指令的操作码的高 12位位每位均用每位均用1,低低 4 位随意位随意, 即即: 1111111111110000111111111111111115条三地址指令的操作码为:条三地址指令的操作码为:0000 1110 15条二地址指令的操作码的高条二地址指令的操作码的高 4 位选用位选用 1111,低低 4 位用位用 0000 1110, 即得到即得到:

10、11110000 11111110 15条一地址指令的操作码的高条一地址指令的操作码的高 8位选用位选用11111111,低低 4 位用位用 0000 1110, 即即: 111111110000 111111111110操作码的扩展技术操作码的扩展技术 实际上,只要各操作码的编码互不相同,就可实际上,只要各操作码的编码互不相同,就可区分不同的指令。当每次扩展的位数和保留的位数区分不同的指令。当每次扩展的位数和保留的位数变化时,可扩指令条数就可变化。变化时,可扩指令条数就可变化。 例如在例如在16位指令字中,也可以选用如下方案支位指令字中,也可以选用如下方案支持三地址指令、二地址指令、一地址指

11、令和零地址持三地址指令、二地址指令、一地址指令和零地址指令指令14、30、31、16条:条:16条零地址为:条零地址为:11111111111100001111111111111111 14条三地址为:条三地址为:0000 1101 (保留保留1110、1111 两个码两个码)30条二地址为:条二地址为:11100000 11111101 (保留(保留 2个码)个码)31条一地址为:条一地址为:111111100000 111111111110 (保留保留 1个码个码)操作码的扩展技术操作码的扩展技术u 寻址方式(又称编址方式):确定本条指令的寻址方式(又称编址方式):确定本条指令的数据或数数

12、据或数据地址据地址或下一条要执行的或下一条要执行的指令地址指令地址的方法。的方法。u 在指令中为每个操作数专设地址字段,用来表示数据的在指令中为每个操作数专设地址字段,用来表示数据的来源或去向的地址。来源或去向的地址。u 指令中给出的操作数(或指令)的地址被称为指令中给出的操作数(或指令)的地址被称为形式地址形式地址,形式地址按一定的规则计算出来的数值才是数据(或指令)形式地址按一定的规则计算出来的数值才是数据(或指令)的的实际地址实际地址。u 在指令的操作数地址字段,可能要指出:在指令的操作数地址字段,可能要指出: 运算器中的累加器的编号或专用寄存器名称(编号)运算器中的累加器的编号或专用寄

13、存器名称(编号) 输入输入/输出指令中用到的输出指令中用到的 I/O 设备的入出端口地址设备的入出端口地址 内存储器的一个存储单元(或一内存储器的一个存储单元(或一 I/O设备设备 )的地址)的地址寻址方式寻址方式操作数在指令的地址字段操作数在指令的地址字段直接给出直接给出。适用于适用于操作数固定操作数固定的情况,的情况,当立即数值较小,其占用位数少,可在指令字第当立即数值较小,其占用位数少,可在指令字第一个字中直接给出,否则需要用指令的第二个字一个字中直接给出,否则需要用指令的第二个字提供。提供。指令的第指令的第2个字个字(1) 立即数寻址立即数寻址立即数,例如立即数,例如Num = 123

14、4H,则指令的一个,则指令的一个操作数就是操作数就是 1234H。指令地址码字段直接给出操作指令地址码字段直接给出操作数数(或指令或指令) 在存储器中的地址。在存储器中的地址。Addr 为操作数在存储器中的地址,为操作数在存储器中的地址, 或转移指令的转移地址。或转移指令的转移地址。例:例:Addr = 5718H ,可能是下一条指令的地址或一,可能是下一条指令的地址或一个操作数的地址,若个操作数的地址,若 5718H = 3,则用,则用 5718H 作地作地址,从内存储器单元中读出的操作数就是址,从内存储器单元中读出的操作数就是 3。内存储器内存储器 操作数操作数 (2) 直接寻址直接寻址寄

15、存器寻址方式:寄存器寻址方式:指令地址码字段给出指令地址码字段给出CPU中某寄存器中某寄存器的编号的编号(地址地址),操作数在该寄存器中。操作数在该寄存器中。寄存器间接寻址方式:寄存器间接寻址方式:寄存器中存放的是操作数在存储寄存器中存放的是操作数在存储单元的单元的地址地址。可通过指令可通过指令操作码操作码或另设或另设特征特征来区分。来区分。例:例:RegNo.=5,使用,使用 5# 累加器,累加器, 此时此时若若 5# 累加器中的内容为累加器中的内容为 7,可记为可记为 (R5)=7,对对寄存器寻址寄存器寻址,操作数就是,操作数就是7对对寄存器间接寻址寄存器间接寻址,操作数是从,操作数是从7

16、#存储单元读出来的数存储单元读出来的数(3) 寄存器寻址、寄存器间接寻址寄存器寻址、寄存器间接寻址 操作数的地址由指定的操作数的地址由指定的变址寄存器变址寄存器(由(由Reg指定)指定)的内的内容和容和变址偏移量变址偏移量(Disp)相加得到。相加得到。操作数操作数存储器存储器变址寄存器变址寄存器加法器加法器例:例:Disp=18H,Reg=5,(R5)=5700H 则操作数地址则操作数地址 = 5718H通常用于访问数组:变址寄存器内容(通常用于访问数组:变址寄存器内容(放数组下标放数组下标)变)变化,变址偏移量(化,变址偏移量(放数组名放数组名)不变。)不变。(4) 变址寻址变址寻址 指令

17、的地址由程序计数器指令的地址由程序计数器 PC 的内容(即当前执行指令的的内容(即当前执行指令的地址)和地址)和相对寻址偏移量相对寻址偏移量(Disp)相加得到。)相加得到。例:例:Disp = 48H(PC) = 5600H 则实际地址则实际地址 = 5648H(1)主要用于)主要用于转移转移指令,对浮动程序也很有用。指令,对浮动程序也很有用。(2)偏移量可正可负,通常用补码表示。)偏移量可正可负,通常用补码表示。PC(5) 相对寻址相对寻址 指令的地址码字段给出的是操作数(或指令)指令的地址码字段给出的是操作数(或指令)地址的地地址的地址址,需要多读一次内存。,需要多读一次内存。操作数操作

18、数Addr1Addr1Addr 可用其他寻址方式给出,可用其他寻址方式给出,例如变址寻址,成为变址与间例如变址寻址,成为变址与间接的复合寻址方式接的复合寻址方式(6) 间接寻址间接寻址存储器存储器设置专用的设置专用的基址寄存器基址寄存器,操作数(或指令)的地址通过,操作数(或指令)的地址通过基址基址寄存器寄存器的内容和指令中的的内容和指令中的地址码地址码(Disp)相加得到。)相加得到。基址寄存器基址寄存器加法器加法器存储器存储器操作数操作数例:例:Disp= 18H,BS= 5700H 则操作数地址则操作数地址=5718H主要用于为程序或数据分配存储区,主要用于为程序或数据分配存储区,对多对

19、多道程序或浮动程序道程序或浮动程序很有用,解决很有用,解决了程序在存储器中的定位和扩大寻址了程序在存储器中的定位和扩大寻址空间等问题。空间等问题。(7) 基址寻址基址寻址堆栈:内存储器、后进先出堆栈:内存储器、后进先出用专用寄存器用专用寄存器 (堆栈指针堆栈指针 SP) 给出给出栈顶栈顶地址,读写通常在地址,读写通常在栈顶进行,故不必在指令中给出堆栈地址,读写前后伴随栈顶进行,故不必在指令中给出堆栈地址,读写前后伴随自动修改自动修改SP,确保,确保SP指向栈顶。指向栈顶。入栈入栈:先:先 SP - 1 SP 、AR(地址寄存器),再把数据写(地址寄存器),再把数据写入入堆栈。堆栈。出栈出栈:

20、SP AR,读栈顶,再读栈顶,再 SP + 1 SP。以上入出栈操作针对以上入出栈操作针对递减、满栈递减、满栈结构。结构。(8) 堆栈寻址堆栈寻址15200HACCSPX栈顶栈顶200H栈底栈底主存主存151FFHACCSP15栈顶栈顶200H栈底栈底主存主存X1FFHPUSH A 前前PUSH A 后后POP A 前前POP A 后后Y1FFHACCSPX栈顶栈顶200H栈底栈底主存主存151FFH15200HACCSP栈顶栈顶200H栈底栈底主存主存X15堆栈寻址举例堆栈寻址举例输入设备输入设备输出设备输出设备入出接口和总线入出接口和总线外存设备外存设备主存储器主存储器高速缓存高速缓存控控

21、 制制 器器运运 算算 器器ADDSUBANDORMVRRSHRRCLOUTSTORE PUSHJUMPJRCCALLRETLOAD POPIN计算机应配置的基本指令计算机应配置的基本指令教学机的基本指令教学机的基本指令(29条条)算术逻辑运算指令算术逻辑运算指令 ADD、SUB、AND、XOR、TEST、 CMP、 OR、DEC、 INC、SHL、SHR数据移动指令数据移动指令 MVRR、MVRD、LDRR、STRR堆栈操作指令堆栈操作指令 PUSH、POP、PSHF、POPF输入输出指令输入输出指令 IN、OUT转移指令转移指令 JMPA、JR、JRC、JRNC、JRZ、JRNZ子程序调用

22、与返回指令子程序调用与返回指令 CALA、RETMV: MOVELD: LOADST: STORE SH: SHIFTJMP: JUMPCAL: CALLRET: RETURNJR: JUMP RELATIVER: REGISTERD: DATAA: ADDRESSF: FLAGS 指令命名规则指令命名规则l 请说明下列各指令的寻址方式、指令字格式及长度、执行请说明下列各指令的寻址方式、指令字格式及长度、执行时访问存储器时访问存储器/外设次数。外设次数。 1、数据传送类:、数据传送类: MVRR R1, R2 MVRD R1, 2003 LDRR R1, R2 LDRA R1, 2003 LD

23、RX R1, R22003 2、算术运算类:、算术运算类:ADD R1, R2 INC R1 3、转移类:、转移类:JMPA 2003 ,JR 2003 4、堆栈类:、堆栈类:PUSH R0l 你觉得教材的指令系统中为什么没有包含以下指令?你觉得教材的指令系统中为什么没有包含以下指令? ADRD R1, 0001 ADRR R1,R2 ADRA R1,0001思考题思考题教学机指令格式教学机指令格式单字无数单字无数单字单数单字单数单字双数单字双数双字单数双字单数双字双数双字双数8位操作码位操作码IR15-IR8含义含义00 0 0 0000 DR SRADD DR,SR00 0 0 0111

24、DR SRMVRR DR,SR10 0 0 0001 DR SRLDRR DR,SR11 1 0 0100 DR 0000LDRA DR,ADR11 0 0 1110 00000000CALA ADR指令格式指令格式汇编语句汇编语句操作数操作数个数个数CZVS指令指令类型类型功能说明功能说明00000000 DR SR00000001 DR SR00000010 DR SR00000011 DR SR00000100 DR SR00000101 DR SR00000110 DR SR00000111 DRSR00001000 DR000000001001 DR000000001010 DR00

25、0000001011 DR000001000001 OFFSET01000100 OFFSET01000101 OFFSET01000110 OFFSET01000111 OFFSETADD DR,SRSUB DR,SRAND DR,SRCMP DR,SRXOR DR,SRTEST DR,SROR DR,SRMVRR DR,SRDEC DRINC DRSHL DRSHR DRJR ADRJRC ADRJRNC ADRJRZ ADRJRNZ ADR22222222111111111*A组组指指令令DRDR + SRDRDRSRDRDR and SRDRSRDRDR xor SRDR and SR

26、DRDR or SRDRSRDRDR-1DRDR+1DR,CDR*2DR,CDR/2无条件跳转到无条件跳转到ADRC=1时跳转到时跳转到 ADRC=0时跳转到时跳转到 ADRZ=1时跳转到时跳转到 ADRZ=0时跳转到时跳转到 ADR10000000 0000000ADR(16位)位)10000001 DRSR10000010 I/O PORT10000011 DRSR10000100 0000000010000101 0000SR10000110 I/O PORT10000111 DR000010001000 DR0000DATA(16位)位)10001100 000000001000111

27、1 00000000JMPA ADRLDRR DR,SRIN I/O PORTSTRR DR,SRPSHFPUSH SROUT I/O PORTPOP DRMVRD DR,DATAPOPFRET12120111200*B组组指指令令无条件跳到无条件跳到ADRDRSRR0I/O PORTDRSRFLAG入栈入栈SR入栈入栈I/O PORTR0DR出栈出栈DRDATAFLAG出栈出栈子程序返回子程序返回11001110 00000000 CALA ADR 1D组组调用首地址为调用首地址为ADR的的子程序子程序16位位教教学学计计算算机机基基本本指指令令系系统统(1) 从指令从指令字长字长分分ADD

28、 DR,SR 1字字JMPA ADR 2字字ADD R1,R2 (R1-R2+R1)机器码:机器码:0000 0000 0010 001JMPA 2003机器码:机器码:10000000 0000 0000 0010 0000 0000 0011指令格式分类指令格式分类(2) 从操作数从操作数个数个数分分CLC 无操作数无操作数JMPA ARD 单操作数单操作数LDRR DR,SR 双操作数双操作数CLC机器码:机器码:01101100 00000000JMPA 2003 机器码:机器码:10000000 00000000 0010 0000 0000 0011LDRR R1, R5 机器码:

29、机器码:10000001 0001 0101(单操作数指令字长不一定短)(单操作数指令字长不一定短)寄存器,如寄存器,如ADD R1,R0寄存器间址,如寄存器间址,如LDRR R1,R0立即数,如立即数,如MVRD R1,1000直接,如直接,如JMPA 3000堆栈,如堆栈,如PUSH R2变址,如变址,如LDRX R0,10R1相对,如相对,如JR 2030IO端口,如端口,如IN 80指令寻址方式分类指令寻址方式分类运算类,如运算类,如ADD R0,R1 加加读写内存类,如读写内存类,如LDRR R1,R0 读内存读内存输入输出指令,如输入输出指令,如IN 80 读读I/O端口端口转移指

30、令,如转移指令,如JR 2003 相对跳转相对跳转子程序类,如子程序类,如CALA 2003 子程序调用子程序调用清清/置标志位指令,如置标志位指令,如STC 置置C标志位标志位堆栈类,如堆栈类,如PUSH R0 进栈进栈其他其他指令功能分类指令功能分类u 1步(步(A组)组):数据在:数据在CPU内部寄存器内部寄存器之间计算和传送。之间计算和传送。如如ADD DR,SRu 2步(步(B组)组):访问:访问一次内存一次内存或或I/O。(1)地址送)地址送 地址寄存器地址寄存器AR;(2)内存内存读写。如读写。如LDRR DR,SR; LDRR DR,SRu 4步(步(D组组):访问):访问两次

31、两次内存或内存或I/O。如。如CALA ADRu 3步(步(C组):组):对对D组某些指令优化。如组某些指令优化。如LDRA DR,ADR(1)将地址值送地址寄存器)将地址值送地址寄存器AR(2)读内存读内存(读回的是地址),(读回的是地址),并送往地址寄存器并送往地址寄存器AR(3)读内存读内存(读回的是数据),(读回的是数据),并送往寄存器并送往寄存器从取指后指令的执行步骤分类从取指后指令的执行步骤分类练习练习1. P166 第第19题题2. 假设采用假设采用2片片AM2901构成一台构成一台8位教学计算机位教学计算机的运算器,也要实现的运算器,也要实现29条基本指令功能,请为该条基本指令

32、功能,请为该教学计算机设计一套指令系统。教学计算机设计一套指令系统。教学计算机汇编程序设计使用说明教学计算机汇编程序设计使用说明u 教学计算机中有教学计算机中有8K*16bit的的ROM(0000H1FFFH,存,存放监控程序)及放监控程序)及2K*16bit的的RAM(2000H28FFH,存放用,存放用户程序及数据)户程序及数据)u 16个寄存器个寄存器R0R15:R4用作堆栈指针用作堆栈指针SP;R5用作程序用作程序计数器计数器PC;其余用作通用寄存器;其余用作通用寄存器。u 教学计算机通过教学计算机通过COM1与仿真终端与仿真终端PC机相连,可实现机相连,可实现交叉交叉汇编、数据传输汇

33、编、数据传输等操作。数据输入等操作。数据输入/输出地址为输出地址为80H,控制,控制/状状态输入态输入/输出地址为输出地址为81H。教学计算机汇编程序示例教学计算机汇编程序示例例例1 在屏幕上输出显示字符在屏幕上输出显示字符6。A 2000 ;从从2000H(内存(内存RAM区起始地址)开始汇编区起始地址)开始汇编2000: MVRD R0,00362002: OUT 802003: RET2004: (按回车键即结束源程序的输入过程)(按回车键即结束源程序的输入过程)A 20002000: IN 812001: SHR R02002: SHR R02003: JRNC 20002004: I

34、N 802005: OUT 802006: RET教学计算机汇编程序示例教学计算机汇编程序示例例例2 从键盘接受一个字符并将其显示到屏幕上。从键盘接受一个字符并将其显示到屏幕上。AA: IN 81 SHR R0 SHR R0 JRNC AA IN 80 OUT 80 RET教学计算机汇编程序示例教学计算机汇编程序示例例例3 在屏幕上依次输出字符在屏幕上依次输出字符0到到9 。A 2020 MVRD R2,000A ;10个个 MVRD R0,0030 ;字符字符0(2024) OUT 80 ;输出输出R0低字节低字节 PUSH R0 ;保存保存R0(2026) IN 81 ;读串行接口状态,读

35、串行接口状态, SHR R0 ; JRNC 2026 ;若串行输出未完成,则再读串口状态若串行输出未完成,则再读串口状态 POP R0 ; 恢复恢复R0 DEC R2 ;个数减个数减1 JRZ 202E ;若全部输出,则转到结束处若全部输出,则转到结束处 INC R0 ;得到下一个要输出的字符得到下一个要输出的字符 JR 2024 ;继续输出字符继续输出字符(202E) RET串行接口状态的串行接口状态的D0位是发送完成标志,位是发送完成标志,1-完成,完成,0-未完成未完成教学计算机汇编程序示例教学计算机汇编程序示例例例4 接收键盘上输入的数字字符并在屏幕上显示,非数字符结束。接收键盘上输入

36、的数字字符并在屏幕上显示,非数字符结束。A 2040 MVRD R2,0030 ;字符下界字符下界 MVRD R3,0039 ;字符上界字符上界(2044) IN 81 ;读串口状态读串口状态 SHR R0 SHR R0 JRNC 2044 ;尚没有输入则循环测试尚没有输入则循环测试 IN 80 ;把输入字符读到把输入字符读到R0低位字节低位字节 MVRD R1, 00FF AND R0, R1 ;将将R0的高位字节清的高位字节清0 CMP R0, R2 ; 字符字符 9 ? JRC 2053 ;大于,转结束大于,转结束 OUT 80 ;输出字符输出字符 JMPA 2044 ;循环循环(205

37、3) RET串行接口状态的串行接口状态的D1位是接收标志,位是接收标志,1-收到,收到,0-未收到未收到教学计算机汇编程序示例教学计算机汇编程序示例例例5 用子程序实现:读出指定内存中的大写字母显示到屏幕用子程序实现:读出指定内存中的大写字母显示到屏幕上,并转换为小写后再写回原存储单元。上,并转换为小写后再写回原存储单元。E 20F0 (送入字符(送入字符AF到到20F0开始的存储区域中)开始的存储区域中) 41 42 43 44 45 46A 2080 MVRD R3, 0006 ;被读字符个数被读字符个数 MVRD R2, 20F0 ;数据内存区首地址数据内存区首地址(2084) CALA 2100 ;调子程序调子程序(入口为入口为2100),完成读出、,完成读出、 ;显示、转

温馨提示

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

评论

0/150

提交评论