如何编写程序将片内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年。
程序如下:
ORG 0000H
LJMP STA
ORG 0030H
STA:
MOV 20H, #9 ;11
MOV 21H, #2; 9
;在这里设置数字。要求如下:
;1. 20H 中的数字,必须大于 21H 中的数字,但是不能超过 8。
;2. 20H 中的数字和 21H 中的数字,成绩不能超过 99。
;-----------------------
MOV A, 20H
CLR C
SUBB A, 21H
MOV 30H, A
;-----------------------
MOV A, 20H
MOV B, 21H
MUL AB
DA A
MOV 31H, A
;-----------------------
MOV A, #255
MOV R2, 30H
L1:
CLR C
RLC A
DJNZ R2, L1
MOV P1, A
;-----------------------
MOV DPTR, #TAB
L2:
MOV A, 31H
MOV B, #10
DIV AB
MOVC A, @A + DPTR
MOV P2, A
CLR P3.0
CALL DELAY
SETB P3.0
MOV A, B
MOVC A, @A + DPTR
MOV P2, A
CLR P3.1
CALL DELAY
SETB P3.1
SJMP L2
;-----------------------
DELAY:
DJNZ R7, $
DJNZ R7, $
RET
TAB: DB 3FH, 06H, 5BH, 4FH ;显示字符存放表
DB 66H, 6DH, 7DH, 07H
DB 7FH, 6FH, 77H, 7CH
DB 39H, 5EH, 79H, 71H
;-----------------------
END
;-----------------------
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!