将片内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