【无标题】

程序存储器中,依次存放0~F的七段数码显示器的字模码3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH、77H、7CH、39H、5EH、79H、71H,则当需要在P1口输出某一数码,假设需要显示的数码存放在20H。

 编程将外部RAM的2000H单元内容传送到3000H单元中(两单元之间的数据传送)。

设A=49H,R0=6BH,分析执行指令:

 

 ADD A, R0 ; A ← A+R0后的结果。

若在外部程序存储器中2000H单元开始依次存放0~9的平方值,数据指针DPTR=3A00H,用查表指令取得2003H单元的数据后保存到30H,要求保持DPTR中的内容不变。编程实现上述功能

双字节压缩BCD码加法。   设R5(高)、 R4(低)为被加数; R3(高)、 R2(低)为加数,相加和的结果存入: R6(万)、 R5(千、 百)、 R4(十、 个)。编程实现双字节压缩BCD码的加法。

编程实现,双字节无符号数相减,(R0 R1)-(R2 R3) → (R4 R5)。R0、 R2、 R4存放16位数的高字节,R1、 R3、 R5存放低字节,先减低8位,后减高8位和低位减借位。

利用单字节乘法指令进行双字节数乘以单字节数运算。 若被乘数为16位无符号数,地址为30H和31H(低位先、 高位后), 乘数为8位无符号数,地址为32H 积存入R2、 R3和R4三个寄存器中。

设A=43H, CY=0, 则执行指令:  

     RL A 结果为: 

      RLC A       

      RR A           

      RRC A

若被乘数和乘数均为16位无符号数,被乘数存放的地址为30H和31H(低位先、 高位后), 乘数存放的地址为32H和33H(低位先、 高位后),乘积存入34H、35H、36H、37H。

编程实现16 位数的算术左移。 16 位数在内存中低 8 位存放在30H单元,高 8 位存放在31H单元。所谓算术左移就是将操作数左移一位,并使最低位补充 0,相当于完成 16 位数的乘 2 操作,故称算术左移。

20H、21H、22H为位地址编程实现(20H)=(21H)⨁(22H)异或运算。

(30H)中存储了一个有符号数,编程求这个有符号数的补码。

将外部RAM从400H单元开始的10个无符号数相加,相加结果保存到外部RAM(300H)L,(301H)H。

利用位逻辑指令, 模拟图所示硬件逻辑电路功能。24a00ed131cb4710af86093a3a4e8987.jpg

将外部数据RAM的一个数据块传送到内部数据RAM, 两者的首址分别为2000H和20H,遇到传送的数据为零时停止。

比较内部RAM(40H)、 (41H)单元中A、 B两数的大小。 若A=B,则使PSW的位F0置 1;若A≠B, 则大数存30H单元,小数存31H单元。 设A、 B数均为带符号数,以补码数存入(40H)、 (41H)中。

设内部RAM 40H、41H单元中分别存放着 8 位二进制数,要求取出两个单元中的低半字节,并成一个字节后,存入 50H单元中。( 40H存高四位、41H存低四位)

x,y均为8位二进制数, 设 x存入R0, y存入R1, 求解: 

假设某菜单有9项。试编写一程序段,根据输入数码转去执行相应的子程序,即输入“1”,执行子程序1;输入“2”,执行子程序2;依次类推,输入“9”,执行子程序9。(注:9段子程序分别用Key1、Key2、…Key9命名,输入的数码存放在R7中)

在内部 RAM中从50H单元开始的连续单元依次存放了一串字符,该字符串以回车符为结束标志,要求测试该字符串的长度。 (回车符的机器码为:0DH)

将内部RAM从20H单元开始的100个无符号数按照从大到小的顺序存放。

:求两个无符号数据块中的最大值。数据块的首地址分别为20H和50H,每个数据块的第1个字节都存放数据块长度。结果存入5FH单元。

某智能化仪器的键盘程序中,根据命令的键值(0,1,2,…,9)转换成相应的双字节16位命令操作入口地址,其键值与对应入口地址关系如下:

键值 0 1 2 3 4 5

入口地址 0123 0186 0234 0316 0415 0520

健值 6 7 8 9

人口地址 0626 0710 0818 0929 

设键值存放在20H单元中,出口地址值存放在22H、23H单元中。

输入一个ASCII命令符,输入的命令符存放在20H单元要求按照输入的命令字符转去执行相应的处理程序。 设命令为单字节字符 ′A′、 ′D′、 ′E′、 ′L′、 ′M′、 ′X′、 ′Z′七种,相应的处理程序入口标号分别为双字节2000H、 2100H、 2200H、 2300H、 2400H、 2500H、 2600H,查到程序入口地址,然后将程序入口地址装入到DPTR,如果没找到则程序结束。

由P3.4引脚(T0)输人一低频脉冲信号(其频率<0.5kHz),要求P3.4每发生 一次负跳变时,P1.0输出一个500μs的同步负脉冲,同时P1.1输出一个1ms的同步正脉冲已知晶振频率为6MHz。

0c9343d27d3741c8aee35ae50875e71f.jpg

 

 

 

 

 

 

 

 

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值