如何编写程序将片内RAM20H、21H、22H单元的内容存入片外RAM20H、21H、22H中?

如题所述

将片内RAM的20H,21H,22H单元的内容依次存入片外RAM的20H,21H,22H中:

MOV R0,#20H

MOV R1,#03H;用于控制循环次数

MOV DPTR,#20H

LOOP:

MOV  A, @R0

MOVX  @DPTR , A

INC  R0;片内RAM地址加一

INC DPTR;外部RAM地址加一

DJNZ  R1,LOOP;未循环完3次,跳回继续移数值

SJMP   $;停止

END

编程将片外RAM的1000H单元开始的100个字节的数据相加,结果存放于R7R6中:

MOV   R6,  #0

MOV   R7,  #0

CLR C;必须先将CY(进位标志)清零

MOV   DPTR,  #1000H

MOV   R2,  #100

LOOP:

MOVX   A,  @DPTR

ADD   A,  R6

MOV  R6,  A;存储低8位

JC  ADD2;CY为一的话,跳转到ADD2,使R7加一(即低8位有进位的话,高8位要加一)

INC   DPTR

DJNZ  R1,   LOOP

SJMP   $

ADD2:

INC R7;R7存储高8位

RET

END

程序编写

1970

70年代早期,Charles Moore在他的语言Forth中写下了第一个有意义的程序。

Prolog方面的工作大约在此时开始了。

同样是在70年代早期的某一天,Xerox PARC由Alan Kay领导,开始了Smalltalk的设计工作。早期版本包括Smalltalk-72,Smalltalk-74和Smalltalk-76。

Pascal在CDC 6000-series电脑上的一个实现出现了。

编程器

Icon,SNOBOL4的一个后代产品问世。

1972

Konrad Zuse写的关于Plankalkul(见1946年)手稿终于出版了。

Dennis Ritchie设计了C。但是最终的参考手册却是在1974年发布的。

Prolog的第一个实现——Alain Colmerauer和Phillip Roussel的功劳。

1974

另一个COBOL的ANSI规范出现。

1975

Tiny BASIC,由Bob Albrecht和Dennis Allison设计(由Dick Whipple和John Arnold实现),运行在2KB内存的微型计算机上。一台4KB的机器是较为合适的,它将有2KB的内存应用于这个程序上。

Bill Gates和Paul Allen编写的一个BASIC版本以抽取每份拷贝版税的形式销售给MITS(Micro Instrumentation and Telemetry Systems)。MITS生产Altair,这是一种8080结构的微型计算机。

Scheme,一个LISP的“方言”,由G.L. Steele和G.J. Sussman设计。

Pascal用户手册和报告出版,Jensen和Wirth编写。许多人至今都认为它是Pascal方面权威的参考书籍。

B.W. Kerninghan描述了RATFOR——RATional FORTRAN。它是预处理程序,并且允许在FORTRAN中使用类C的控制结构。RATFOR被应用到了Kernighan和Plauger的“Software Tools”中,它出现在1976年。

温馨提示:内容为网友见解,仅供参考
无其他回答

...21H、22H单元的内容存入片外RAM20H、21H、22H中?
INC R0;片内RAM地址加一 INC DPTR;外部RAM地址加一 DJNZ R1,LOOP;未循环完3次,跳回继续移数值 SJMP $;停止 END 编程将片外RAM的1000H单元开始的100个字节的数据相加,结果存放于R7R6中:MOV R6, #0 MOV R7, #0 CLR C;必须先将CY(进位标志)清零 MOV DPTR, #1000...

试编程将片外RAM中20H和21H单元中的内容相乘,结果存放于22H和23H单 ...
mov dptr,#20h movx a,@dptr mov b,a inc dptr movx a,@dptr mul ab inc dptr movx @dptr,a mov a,b inc dptr movx @dptr,a

...将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH...
org 0h mov sp,#2cH PUSH 22h PUSH 21H PUSH 20H end

用单片机实现如下指令 :片外RAM20H单元的内容送片内RAM20H单元
三条指令即可。MOV R0, #20H MOVX A, @R0 ;MOVX是片外传送 MOV @R0, A ;MOV 是片内传送

...将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH...
没错,这样是对的。另外原题中有没有说2FH,2EH,2DH是片内还是片外?

计算机应用系统方面的编程题
2-5 试编写程序,将内部RAM的20H,21H,22H三个连续单元的内容依次存入2FH,2EH和2DH单元。解:此题可以直接用传送指令来完成: MOV 2FH,20H MOV 2EH,21H MOV 2DH,22H当然也可以用循环程序来做: MOV R0,#20H ;源数据区首地址 MOV R1,#2FH ;目的数据区首地址 MOV R3,#03H ;数据块长度 LOOP: MOV A,@...

将内部RAM的20H,21H,22H,三个连续单元的内容依次存入到2FH,2EH和2DH...
MOV 2FH, 20H MOV 2EH, 21H MOV 2DH, 22H 只用这三条指令即可。

将片内20h单元的内容送到片外ram2000h单元中,单片机程序怎么写?
MOV DPTR,#2000h MOVX @DPTR,20H

在21H,20H存放二位分离BCD码,其中21H为高位。试将它们转为二进制数...
LJMP MAIN ORG 3000H MAIN:MOV 21H,#7 MOV 20H,#3 MOV B,21H MOV A,#10 MUL AB ADD A,20H ;其实MUL命令的结果的高位是存在B中的但是由于 ;此题的特殊性高8位一定是为零的,即使最大,结果 ;也只能为90小于255,故将B舍去 MOV 22H,A JMP END 这是51单片机的编程,不知道你要的是...

...将外部ram2000h单元开始的20个连续单元的内容送到外部ram
; MOV R0, #0 MOV R2, #20LP: MOV P2, #20H MOVX A, @R0 MOV P2, #0 MOVX @R0, A INC R0 DJNZ R2, LP SJMP $ END

相似回答
大家正在搜