1、练习,一、有一输入设备口地址为E000H,在这个口中已有数字量89H,欲将此值读入累加器,请编写指令。 二、把外部数据存储器2040H单元中的数取出,传送到片外数据存储器的3050H单元中去。 三、把片内数据存储器的64H单元中的数取出,传送到外部数据存储器3000H单元中去。 四、把累加器A中的数据的低4位送入外部数据存储器的2000H单元。 五、将累加器A中的数据的低4位的状态,通过P1口的高4位输出。 六、试编写计算17H X 68H 的程序,将乘积的高8位存入31H,低8位存入30H单元。,练习,七、把累加器A的内容与立即数13H相加,结果若不等于80H,则程序跳转5个字节。 八、已知
2、片内RAM (21H)=8FH,把21H的最低位传送入C中。 九、把P1.3的状态传送到P1.7 十、把ACC.5与80H位相与的结果,通过P1.4输出。 十一、比较片内RAM40H、50H中的两个无符号数大小,若40H中的数小则把片内RAM中的40H位置1,若50H中的数小则把片内RAM中的50H位置1,若相等则把20H位置1 ,然后返回。,答案:,一、有一输入设备口地址为E000H,在这个口中已有数字量89H,欲将此值读入累加器,请编写指令。MOV DPTR,#E000H ;E000HDPTRMOVX A,DPTR ;(E000H) A二、把外部数据存储器2040H单元中的数取出,传送到片
3、外数据存储器的3050H单元中去。MOV DPTR,#2040HMOVX A,DPTRMOV DPTR,#3050HMOVX DPTR,A,答案:,三、把片内数据存储器的64H单元中的数取出,传送到外部数据存储器3000H单元中去。MOV A,64HMOV DPTR,#3000HMOVX DPTR,A,答案:,四、把累加器A中的数据的低4位送入外部数据存储器的2000H单元。MOV DPTR,#2000H ANL A,#0FH MOVX DPTR, A五、将累加器A中的数据的低4位的状态,通过P1口的高4位输出。ANL A ,#0FHSWAP AANL P1,#0FHORL P1,A,六、试编
4、写计算17H X 68H 的程序,将乘积的高8位存入31H,低8位存入30H单元。MOV A, #17HMOV B, #68HMUL AB ;A X BBAMOV 30H, AMOV 31H, B 七、把累加器A的内容与立即数13H相加,结果若不等于80H,则程序跳转5个字节。地址 机器码 源程序2000 24 13 ADD A,#13H 2002 B4 80 05 CJNE A,#80H, LP ;A=80H;PC+3PC2005 ;A80H;PC+3+5PC 200A 24 56 LP:ADD A,#56H,答案:,八、已知片内RAM (21H)=8FH,把21H的最低位传送入C中。MOV
5、 C,08H ;(21H).0C九、把P1.3的状态传送到P1.7MOV C , P1.3MOV P1.7 , C十、把ACC.5与80H位相与的结果,通过P1.4输出。MOV C , ACC.5ANL C , 80H MOV P1.4 , C,答案:,十一、比较片内RAM40H、50H中的两个无符号数大小,若40H中的数小则把片内RAM中的40H位置1,若50H中的数小则把片内RAM中的50H位置1,若相等则把20H位置1,然后返回。ORG 0100HMOV A,40HCJNE A,50H,L1 ;两数不等则转L1SETB 20H ;两数相等,置20HRETL1:JC L2 ;若C为“1”,则(40H)中数小SETB 50H ;若(50H)数小则50H位置1RETL2:SETB 40H ;若(40H)数小则40H位置1RETEND,