第3章答案指令系统1-40

合集下载

第3章(1) 寻址方式和指令系统

第3章(1) 寻址方式和指令系统

EA的组成不同,寻找其中的操作数的方式也随之不同。如何寻找操作数 的有效地址,进而找到所需操作数的方式就是寻址方式 因为EA的组成方式都体现在指令中,故寻址方式也可以说是在指令中获得 操作数所在地址的方法。
3.1 Pentium的寻址方式
• 指令的两个问题
– 指出进行什么操作 – 涉及的操作数和操作结果放在何处
在这种寻址方式中,操作数是在存储器中,但是,操作 数的地址的16位偏移量包含在以下四个寄存器SI、DI、 BP、BX之一中。这又可分成两种情况: 1、 BX、SI、DI间址时以DS为默认段地址; 例:MOV AX,[SI] 2、BP间址时以SS为默认段地址。 例:MOV AX,[BP]
医药信息工程学院 何永玲
二、操作数存在方式
在微型计算机中,操作数可能以以下四种方式存在:
• 操作数包含在指令中——即指令的操作数场就包含着操作数本身。
MOV AX, 1234 ; ADD AL, 2
• 操作数包含在CPU的某一个内部寄存器中—— 这时指令中的操作数场是
CPU内部 寄存器的一个编码。
MOV DS, AX
• 操 作 数 在 内 存 的 数 据 区 中 —— 这 时 指 令 中 的 操 作 数 场 包 含 着 此 操 作 数 的
医药信息工程学院 何永玲
3.2.2 算术运算指令(1-P88)
– 不带进位位的加法指令ADD
比如: ADD ADD ADD ADD 比如: ADC ADC ADC CX,1000H ;CX=CX+1000h DI,SI [BX+DI],AX EAX,[BX+2000H]
• 无符号数和有符号数采用同一套加法指令及减法 所有算术运算指令均影响状态标志。 指令有两个条件:

《计算机组成原理》第3章习题答案

《计算机组成原理》第3章习题答案

第3章习题解答1.指令长度和机器字长有什么关系?半字长指令、单字长指令、双字长指令分别表示什么意思?解:指令长度与机器字长没有固定的关系,指令长度可以等于机器字长,也可以大于或小于机器字长。

通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长指令。

2.零地址指令的操作数来自哪里?一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?各举一例说明。

解:双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。

双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。

例如,前述零地址和一地址的加法指令。

3.某机为定长指令字结构,指令长度16位;每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。

若双操作数指令已有K种,无操作数指令已有L种,问单操作数指令最多可能有多少种?上述三类指令各自允许的最大指令条数是多少?解:X= (24一K)×26一[L/26]双操作数指令的最大指令数:24一1。

单操作数指令的最大指令数:15×26一l(假设双操作数指令仅1条,为无操作数指令留出1个扩展窗口)。

无操作数指令的最大指令数:216一212一26。

其中212为表示某条二地址指令占用的编码数,26为表示某条单地址指令占用的编码数。

此时双操作数和单操作数指令各仅有1条。

4.设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种分配方案,使该指令系统包含:4条三地址指令,8条二地址指令,180条单地址指令。

解:4条三地址指令000 XXX YYY ZZZ..011 XXX YYY ZZZ8条二地址指令100 000 XXX YYY..100 111 XXX YYY180条单地址指令101 000 000 XXX..111 110 011 XXX5.指令格式同上题,能否构成:三地址指令4条,单地址指令255条,零地址指令64条?为什么?解:三地址指令4条000 XXX YYY ZZZ..011 XXX YYY ZZZ单地址指令255条100 000 000 XXX..111 111 110 YYY只能再扩展出零地址指令8条,所以不能构成这样的指令系统。

单片机课后习题解答

单片机课后习题解答

单片机课后习题解答练习练习练习第二章单片机结构及原理1、mcs-51单片机内部涵盖哪些主要功能部件?它们的促进作用就是什么?请问:(1)一个8bitcpu就是微处理器的核心,就是运算和逻辑排序的中心。

(2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。

(3)4krom程序存贮器:存贮程序及常用表格。

(4)128bram数据存贮器:暂存一些中间变量和常数等。

(5)两个16bit定时器/计数器:全然硬件定时器(6)32根可编程i/o口线:标准8位双向(4个)i/o接口,每一条i/o线都能独立地作输入或输出。

(7)一个可编程全双工串行口。

(8)五个中断源。

2、什么是指令?什么是程序?请问:指令就是规定计算机继续执行某种操作方式的命令。

程序是根据任务要求有序编排指令的集合。

3、如何重新认识89s51/52存储器空间在物理结构上可以分割为4个空间,而在逻辑上又可以分割为3个空间?答:89s51/52存储器空间在物理结构上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。

在逻辑上有3个存储器地址空间:片内、片外统一的64kb程序存储器地址空间,片内256b数据存储器地址空间,片外64kb的数据存储器地址空间。

4、开机复位后,cpu使用的是哪组工作寄存器?他们的地址是多少?cpu如何确定和改变当前工作寄存器组?请问:开机登位后,cpu采用的就是第0组与工作寄存器,地址为00h~07h,cpu通过发生改变状态字寄存器psw中的rs0和rs1去确认工作寄存器组。

5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针sp重新赋值?如果cpu在操作中要使用两组工作寄存器,sp应该多大?请问:堆栈就是一个特定的存储区,主要功能就是暂时存放数据和地址,通常用以维护断点和现场。

堆栈指针sp登位后指向07h单元,00h~1fh为工作寄存器区,20h~2fh为十一位串行区,这些单元存有其他功能,因此在程序设计时,须要对sp再次赋值。

第3章指令系统

第3章指令系统

XCHD A, @Ri 结果:(A)=? (30H)=?
(3) 累加器A中高四位与低四位交换指令
SWAP A
功能: 交换A中高、低半字节(3~0和7~4), 结果不影响标志寄存器PSW。
例: 设(A)=0A5H(10100101B) SWAP A 结果:(A)=5AH(01011010B)
3.3.2算术运算类指令
弹出指令:POP direct ; ((SP))←(direct),SP←SP-1
PUSH ACC PUSH B 则出栈的顺序为: POP B POP ACC
9.数据交换指令
(1)字节交换指令
目的操 作数 XCH A, XCH A, XCH A, 源操作数 功能说明 direct @Ri Rn (direct) ((Ri)) (Rn) 源操作数寻址 方式 直接寻址 间接寻址 寄存器寻址
5.16位目标地址传送指令
目的操 作数 MOV DPTR, 源操作数 功能说明 #data16 源操作数 寻址方式
;(DPTR)←data16 立即寻址
16位立即数的高8位送入DPH中,低8位送入DPL中。 该指令的执行,不影响程序状态寄存器PSW。
6.外部数据存储器(或I/O口)与累加器A传送指令
第3章
MCS-51单片机的指令系统
汇编语言的指令格式及符号简介
寻址方式 数据传送类指令 算术运算类指令 逻辑运算类指令 位操作类指令 控制转移类指令 思考练习题
3.1 汇编语言的指令格式及符号简介
3.1.1 指令格式
[标号:] 操作码助记符 [目的操作数] [, 源操作数]
例如: LOOP: MOV A, #50H DEC R0 DJNZ R0, LOOP END

第3章 PIC单片机指令系统

第3章 PIC单片机指令系统

第3章 指令系统3.1 3.2 3.3 3.4 汇编语言 寻址方式 PIC18F452指令系统 程序设计举例3.1汇编语言• 指令:是 指令:是CPU CPU根据人的意图来执行某种操作的命令。

根据人的意图来执行某种操作的命令。

• 程序设计语言:是实现人机交换信息的基本工具,分为机 器语言、汇编语言和高级语言。

• 机器语言:用二进制编码表示每条指令 机器语言:用二进制编码表示每条指令,是计算机能 ,是计算机能直接 直接 识别和执行的语言。

识别和执行 的语言。

• 汇编语言:是用助记符、符号和数字 汇编语言:是用助记符、符号和数字等来表示指令的程序 等来表示指令的程序 设计语言。

它与机器语言指令是一一对应的。

设计语言。

它与机器语言指令是一一对应的。

? 汇编语言编写的程序能否直接被计算机执行? • 高级语言:面向问题和计算过程的语言,可通用于各种不 同的计算机。

用户编程时不必了解所用计算机的指令系统。

Why study assembly language?• Many critical programs are written in assembly language • To better understand the functions and architecture of a computer system • To better understand the working of high level languages • To design efficient programs • A tool for writing system programs • Embedded systems development– Mixed languages programming3• PIC18F452 PIC18F452汇编语言指令格式 汇编语言指令格式 标记段: 标记段 :操作码 [目的 目的操作数 操作数][, ][,源 源操作数 操作数][ ][; ;注释 注释] ]MOVLW BTFSS BCF GOTO 0x7F WREG, 7 WREG, 0 Stop ;load test data ;clear bit 0Stop:• 其中操作码 其中操作码是必不可少的。

大工计算机原理第3章8086微处理器的指令系统(1)资料

大工计算机原理第3章8086微处理器的指令系统(1)资料

第3章 8086微处理器的指令系统(1)3.1 指令系统概述● 指令系统是一台计算机所能(识别和执行)的全部指令的集合。

它与(微处理器)有着密切的关系,不同的微处理器有不同的指令系统。

8086CPU 包含133条指令● 指令是使计算机执行某种(特定操作)的二进制编码。

指令一般包括两个部分:(操作码域)和(地址域)。

填空操作码域:存放指令的操作码,即指明该指令应由计算机完成何种操作。

地址域:确定操作数的值或地址、操作结果的地址,有的指令的地址域还指出下一条指令的地址。

● 机器指令:计算机能(直接识别)的二进制代码。

● 汇编语言:汇编语言是一种符号语言,用助记符表示操作码,用符号或符号地址表示操作数或操作数地址,它与机器指令是一一对应的● 汇编程序:将汇编语言源程序翻译成机器语言(就是一条一条的机器指令),即目标程序。

3.2寻址方式● 根据(指令内容)确定(操作数地址)的过程,称为寻址。

● 根据寻址方式计算所得到的地址叫做(有效地址EA ),也就是(段内偏移地址)。

有效地址还需要与相应的(段基地址)组合才是20位的(物理地址PA) ,该工作由微处理器来完成。

牢记什么是EA ?什么是PA ?怎么计算?后面有关于EA 和PA 的解释及计算方法!● 寻址方式在两种方式下被涉及:(操作数)的寻址方式和(指令)的寻址方式。

如果没有特别说明,寻址方式是指源操作数的寻址方式。

1、隐含寻址(隐含了规定的操作数)例:DAA 指令,只有操作码,无操作数。

规定对AL 中的内容进行压缩BCD 码转换。

2、立即寻址(操作数(立即数)直接放在指令中,不需访问存储器)例:MOV AX ,1234H (若CS=1000H ,IP=100H )3、寄存器寻址(操作数就放在内部寄存器中,不需访问存储器)例:INC CX ;(CX)←(CX)+1 MOV AX ,BX ;执行后BX 内容不变 4、直接寻址(指令中直接给出操作数的存放地址) 例1:MOV AX ,[4000H] (DS =3000H )☞操作数寻址 可以进行寄存器寻址的寄存器: (16位)AX 、BX 、CX 、DX 、SI 、DI 、SP 、BP(8位) AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL例2:MOV ES:[1234H],BL (ES =4000H )注意:(1)指令中给出的[4000H]和[1234H]是操作数的偏移地址。

DSP(知识点+思考题)

DSP(知识点+思考题)

DSP复习要点第一章绪论1、数的定标:Qn表示。

例如:16进制数2000H=8192,用Q0表示16进制数2000H=0.25,用Q15表示2、‟C54x小数的表示方法:采用2的补码小数;.word 32768 *707/10003、定点算术运算:乘法:解决冗余符号位的办法是在程序中设定状态寄存器STl中的FRCT位为1,让相乘的结果自动左移1位。

第二章CPU结构和存储器设置一、思考题:1、C54x DSP的总线结构有哪些特点?答:TMS320C54x的结构是围绕8组16bit总线建立的。

(1)、一组程序总线(PB):传送从程序存储器的指令代码和立即数。

(2)、三组数据总线(CB,DB和EB):连接各种元器件,(3)、四组地址总线(PAB,CAB,DAB和EAB)传送执行指令所需要的地址。

2、C54x DSP的CPU包括哪些单元?答:'C54X 芯片的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、比较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。

1)、累加器A和B分为三部分:保护位、高位字、地位字。

保护位保存多余高位,防止溢出。

2)、桶形移位寄存器:将输入数据进行0~31bits的左移(正值)和0~15bits的右移(负值)3)、乘法器/加法器单元:能够在一个周期内完成一次17*17bit的乘法和一次40位的加法4)、比较选择和存储单元:用维比特算法设计的进行加法/比较/选择运算。

5)、CPU状态和控制寄存器:状态寄存器ST0和ST1,由置位指令SSBX和复位指令RSBX控制、处理器模式状态寄存器PMST2-3、简述’C54x DSP的ST1,ST0,PMST的主要功能。

答:’C54x DSP的ST1,ST0,PMST的主要功能是用于设置和查看CPU的工作状态。

•ST0主要反映处理器的寻址要求和计算机的运行状态。

03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)

03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)

;A = 59H = 0101 1001B ;P1 = A = 0101 1001B ;C = 1 ;ACC.1 = 1 ;P1.3 = 0 ;P1.6 = 0 ;P1.2 = 1 ;(20H)= P1 = 0001 0101B ;(30H)= A = 0101 1011B
09:43
单片机技术
8
3.9.2 位控制指令(SETB、CLR、CPL)
;P1.0 = 1 ;ACC.3 = 0 ;C = 1 ;C = 1 ;C = 1 ;P3.4 = 1
09:43
单片机技术
14
3.9.3 位条件转移指令(JC、JB、JBC)
❖ 1.判C转移指令ຫໍສະໝຸດ JC、JNC)JC rel
;先PC←PC+2;若(Cy)= 1时转移,且PC'
=PC+rel,否则顺序执行
CPL bit ;(bit)= (/bit)
▪ 功能:将Cy或bit取反。
09:43
单片机技术
9
3.9.2 位控制指令(SETB、CLR、CPL)
❖ 课堂练习
▪ 执行以下指令?
SETB P1.0 CLR 20H CLR PSW.2 CPL PSW.2 CLR RS0 SETB RS1
;P1.0 = 1 ;20H = 0 ;PSW.2 = 0 ;PSW.2 = 1 ;RS0 = 0 ;RS1 = 1
❖ 1.位置1指令(SETB)
▪ 格式:SETB C ;(Cy) = 1
SETB bit ;(bit)= 1
▪ 功能:将Cy或bit置1。
❖ 2.位置0指令(CLR)
▪ 格式:CLR C ;(Cy) = 0
CLR bit ;(bit)= 0
▪ 功能:将Cy或bit置0。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章指令系统1,简述下列基本概念:指令,指令系统,机器语言,汇编语言,高级语言。

1、指令:CPU根据人的意图来执行某种操作的命令指令系统:一台计算机所能执行的全部指令集合机器语言:用二进制编码表示,计算机能直接识别和执行的语言汇编语言:用助记符、符号和数字来表示指令的程序语言高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言2,什么是计算机的指令和指令系统?2、见第1题。

3,简述89C51汇编指令格式。

3、操作码[目的操作数] [,源操作数]4,简述89C51寻址方式和所能涉及的寻址空间。

5,要访问特殊功能寄存器和片外数据寄存器,应采用哪些寻址方式?5、SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址6,在89C51片内RAM中,已知(30H)=38H, (38H)=40H, (40H)=48H, (48H)=90H, 请分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果。

6、MOV A,40H ;直接寻址(40H)→AMOV R0,A ;寄存器寻址(A)→R0MOV P1,#0F0H ;立即数寻址0F0→P1MOV @R0,30H ;直接寻址(30H)→(R0)MOV DPTR,#3848H ;立即数寻址3848H→DPTRMOV 40H,38H ;直接寻址(38H)→40HMOV R0,30H ;直接寻址(30H)→R0MOV P0,R0 ;寄存器寻址(R0 )→P0MOV 18H,#30H ;立即数寻址30H→18HMOV A,@R0 ;寄存器间接寻址((R0)) →AMOV P2,P1 ;直接寻址(P1)→P2最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H 注意:→左边是内容,右边是单元7,对89C51片内RAM的高128字节的地址空间寻址要注意什么7、用直接寻址,位寻址,寄存器寻址8,指出下列指令的本质区别。

8,MOV A,DATA ;直接寻址2字节1周期MOV A,#DATA ;立即数寻址2字节1周期MOV DATA1,DATA2 ;直接寻址3字节2周期MOV 74H,#78H ;立即数寻址3字节2周期如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A9,设R0内容为32H, A的内容为48H, 片内RAM的32H单元内容为80H, 40H单元内容为08H, 请指出在执行下列程序段后上述各单元内容的变化。

9、MOV A,@R0 ;((R0))=80H→AMOV @R0,40H ;(40H)=08H→(R0)MOV 40H,A ;(A)=80→40HMOV R0,#35H ;35H→R0最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H10,如何访问SFR,可使用哪些寻址方式?10、用直接寻址,位寻址,寄存器寻址11,如何访问片外RAM,可使用哪些寻址方式?11、只能采用寄存器间接寻址(用MOVX指令)12,如何访问片内RAM,可使用哪些寻址方式?12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)高128字节:直接寻址,位寻址,寄存器寻址13,如何访问片内外程序存储器,可使用哪些寻址方式?13、采用变址寻址(用MOVC指令)14,说明十进制调整的原因和方法。

14、压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。

用DA A指令调整(加06H,60H,66H)15,说明89C51的布尔处理机功能。

15、用来进行位操作16,已知(A)=83H, (R0)=17H, (17H)=34H, 请写出执行完下列程序段后A的内容。

16、ANL A,#17H ;83H∧17H=03H→AORL 17H,A ;34H∨03H=37H→17HXRL A,@R0 ;03H⊕37H=34HCPL A ;34H求反等于CBH所以(A)=CBH17,使用位操作指令实现下列逻辑功能,要求不得改变未涉及位的内容。

(1)使ACC.0置1;(2)清除累加器高4位;(3)清除ACC.3,ACC.4,ACC.5,ACC.6 。

17、(1)SETB ACC.0或SETB E0H ;E0H是累加器的地址(2)CLR ACC.7CLR ACC.6CLR ACC.5CLR ACC.4(3)CLR ACC.6CLR ACC.5CLR ACC.4CLR ACC.318,编程实现把内部RAM R0~R7 的内容传递到20H~27H单元。

18、MOV 27H,R7MOV 26H,R6MOV 25H,R5MOV 24H,R4MOV 23H,R3MOV 22H,R2MOV 21H,R1MOV 20H,R019,试编写程序,将内部RAM 20H、21H和22H3个连续单元的内容依次存入2FH、2EH 和2DH 中。

19、MOV 2FH,20HMOV 2EH,21HMOV 2DH,22H20,编写程序,进行两个16位数减法,6F5DH –13B4H, 结果存入内部RAM的30H和31H单元,30H存储低8位。

20、CLR CMOV A,#5DH ;被减数的低8位→AMOV R2,#0B4H ;减数低8位→R2SUBB A,R2 ;被减数减去减数,差→AMOV 30H,A ;低8位结果→30HMOV A,#6FH ;被减数的高8位→AMOV R2,#13H ;减数高8位→R2SUBB A,R2 ;被减数减去减数,差→AMOV 31H,A ;高8位结果→30H注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位21,编写程序,若累加器A的内容分别满足下列条件,则程序转至LABEL存储单元。

设A中存储的是无符号数。

(1)A≥10; (2)A>10; (3)A≤10。

21、(1)A≥10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1LJMP LABEL ;相等转LABELL1:JNC LABEL ;(A)大于10,转LABEL或者:CLR CSUBB A,#0AHJNC LABEL(2)A>10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1RET ;相等结束L1:JNC LABEL ;(A)大于10,转LABELRET ;(A)小于10,结束或者:CLR CSUBB A,#0AHJNC L1RETL1:JNZ LABELRET(3)A≤10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1L2:LJMP LABEL ;相等转LABELL1:JC L2 ;(A)小于10,转L2RET或者:CLR CSUBB A,#0AHJC LABELJZ LABELRET22,已知(SP)=25H, (PC)=2345H, (24H)=12H, (25H)=34H, (26H)=56H。

问此时执行“RET”指令以后,(SP)=? (PC)=?22、(SP)=23H,(PC)=3412H参看书上80页23,若(SP)=25H, (PC)=2345H, 标号LABEL所在地址为3456H。

问执行长调用指令“LCALL LABEL”后,堆栈指针和堆栈内容发生什么变化?PC值等于什么?23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H参看书上79页24,上题中LCALL指令能否直接换成ACALL指令,为什么?如果使用ACALL 指令,则可调用的地址范围是什么?24、不能。

ACALL是短转指令,可调用的地址范围是2KB。

在看这个题的时候同时看一下AJMP指令。

同时考虑调用指令ACALL和LCALL 指令和RET指令的关系。

25,编写指令,查找在内部RAM的20H~50H单元中是否有0AAH这一数据。

若有,则将51H单元置为01H;若未找到,则将51H单元清0。

25、MOV R2,#31H ;数据块长度→R2MOV R0,#20H ;数据块首地址→R0LOOP:MOV A,@R0 ;待查找的数据→ACLR C ;清进位位SUBB A,#0AAH ;待查找的数据是0AAH吗JZ L1 ;是,转L1INC R0 ;不是,地址增1,指向下一个待查数据DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找MOV 51H,#00H ;等于0,未找到,00H→51HRETL1:MOV 51H,#01H ;找到,01H→51HRET26,编写指令,查找在内部RAM的20H~50H单元中出现00H的次数,并将查找结果存入51H单元。

26、MOV R2,#31H ;数据块长度→R2MOV R0,#20H ;数据块首地址→R0LOOP:MOV A,@R0 ;待查找的数据→AJNZ L1 ;不为0,转L1INC 51H ;为0,00H个数增1L1:INC R0 ;地址增1,指向下一个待查数据DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找RET27,外部数据RAM中有一个数据块,存有若干字符、数字,首地址为SOURCE。

要求将该数据块传送到内部RAM以DIST开始的区域,直到遇到字符“$”时结束(“$”也要传送,它的ASCII码是24H)。

27、MOV DPTR,#SOURCE ;源首地址→DPTRMOV R0,#DIST ;目的首地址→R0LOOP:MOVX A,@DPTR ;传送一个字符MOV @R0,AINC DPTR ;指向下一个字符INC R0CJNE A,#24H,LOOP ;传送的是“$”字符吗?不是,传送下一个字符RET28,已知R3和R4中存有一个16位的二进制数,高位在R3中,低位在R4中。

请编程将其求补,并存回原处。

28、MOV A,R3 ;取该数高8位→AANL A,#80H ;取出该数符号判断JZ L1 ;是正数,转L1MOV A,R4 ;是负数,将该数低8位→ACPL A ;低8位取反ADD A,#01H ;加1MOV R4,A ;低8位取反加1后→R4MOV A,R3 ;将该数高8位→ACPL A ;高8位取反ADDC A,#00H ;加上低8位加1时可能产生的进位SETB ACC.7MOV R3,A ;高8位取反加1后→R3L1:RET29,已知30H和31H中存有一个16位的二进制数,高位在前,地位在后,请编程将它们乘以2,再存回原单元中。

29、CLR C ;清进位位CMOV A,31H ;取该数低8位→ARLC A ;带进位位左移1位MOV 31H,A ;结果存回31HMOV A,30H ;取该数高8位→ARLC A ;带进位位左移1位MOV 30H,A ;结果存回30H30,内存中有两个4字节以压缩的BCD码形式存放的十进制数,一个存放在30H~33H单元中,一个存放在40H~43H单元请编程求他们的和,结果存放在30H~33H单元中。

相关文档
最新文档