实验1-6
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一汇编语言设计和调试方法(一)
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
1、有两个无符号双字节数,按低字节在前的顺序分别存放在内部RAM的30H、31H和40H、41H单元中,设(30H)=0AFH,(31H)=0AH,(40H)=90H,(41H)=2FH,求两数之和并存于30H、31H单元,同时说明PSW中相关位的内。
MOV 30H ,#0AFH
MOV 31H ,#2AH
MOV 40H ,#90H
MOV 41H, #2FH
MOV R0,#30H
MOV A,40H
ADD A,@R0 ;计算低字节之和
MOV @R0,A ;低字节和存入30H单元
MOV A,41H
INC R0
ADDC A,@R0 ;计算高字节之和
MOV @R0,A
2、将累加器A中低4位通过P1口的高4位输出,已知(A)=45H,(P1)=68H。
MOV A,#45H
MOV P1,#68H
ANL A,#0FH
SAWP A
ANL P1,#0FH
0RL P1 ,A
3、比较内部RAM中30H和40H中的两个无符号数的大小,将大数存入50H,小数存入51H单元中,若两数相等则F0位置“1”。若(30H)=49H,(40H)=60H,其结果如何?PSW=?F0=?
MOV A,30H
CJNE A,40H,Q1 ;两数不等转移
SETB F0 ;两数相等F0置位
RET
Q1:J C Q2 ;(CY)=1即(30H)<(40H)转移
MOV 50H,A ;存大数
MOV 51H,40H ;存小数
RET
Q2:M OV 50H,40H
MOV 51H,A
RET
4. 说明下列程序的功能及运行的结果:(A)=?(R0)=?(R1)=?
MOV 20H,#14H
MOV R0,#20H
MOV A,@R0
RL A
MOV R1,A
RL A
RL A
ADD A,R1
MOV R0,A
5、以查表方法把累加器A中的十六进制数转换为ASCII码,并送回累加器A中。其查表程序如下:(当(A)=0EH,问其结果为什么?
2000 MOV DPTR,#TAB ;表的首地址作为基址
2001 MOVC A,@A+DPTR ;查表
2002 RET
2003TAB:D B 30H,31H,32H,33H,34H,35H
DB 36H,37H,38H,39H,41H,42H,
DB 43H,44H,45H,46H