理工学院-单片机3.习题mcs51汇编程序设计_第1页
理工学院-单片机3.习题mcs51汇编程序设计_第2页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章汇编语言程序设计4-14-2若晶振为 12MHz,试编制延时 2ms 和 1s 子程序。将 20H 单元中 8 位无符号数,转换成 3 为 BCD 码并存放在 30H(百位)和 31H(十位)单元中。将 30H 单元内的 2 个 BCD 数相乘,乘积位 BCD 数,并把乘积存放在 31H 单元。试求 21H 和 20H 单元中 16 位带符号二进制补数码的绝对值,并送回 20H 和 21H 单元,在先,低位在后4-34-44-54-6试求RAM30H37H 单元中 8 个无符号数的算术平均值,结果存入 38H 单元。试编一数据块搬迁程序。将外部 RAM2000H204FH 单元中的数,移

2、入单元中。RAM30H7FH4-7在RAM 的 BLOCK 开始的单元中有一无符号数据块,数据块长度存入 LEN 单元。试编程求其中的最小数并存入 MINI 单元。4-8在RAM 的 BLOCK 开始的单元中有一带符号数据块其长度存入 LEN 单元。试编程求其中正数和负数的代数和,并分别存入 PSUM 与 MSUM 指向的单元中。4-9在RAM 的 BLOCK 开始的单元中有一无符号数据块,其长度存入 LEN 单元。试编程重新按递增次序排列,并存入原区4-10试编程将(R2R3)中的二进制数转换成 BCD 码,并存入 R0 指向的单元中。用除以 10次幂取商法编程。4-11试编程将 R0 指向

3、的RAM 中 16 个单元的 32 个十六进制数,转换成 ASCII 码并存入 R1 指向的RAM 中。4-12在RAM 的 ONE 和 TWO 单元各存有一带符号 X 和Y。试编程按下式要求运算,结果F 存入 FUNC 单元。X+YXY XY X+Y X若X 位正奇数若X 位正偶数若X 位负奇数若X 位负偶数若X 等于零F=4-13设变量 X 存入 VAR 单元,函数 F 存入 FUNC 单元,试编程按下式要求给 F 赋值。1X0F=0X=0-1X04-14设变量 X 存入 VAR 单元,函数 F 存入 FUNC 单元,试编程按下式要求给 F 赋值。1X20F=020X10-1X104-15

4、试编程,根据 R3 内容 00H0FH,转换到 16 个不同分支,分支均处于同一 2 程序存储器之内。试编程,根据 R3 内容 00H0FH,转换到 16 个不同分支,分支均处于同一 2 程序存储器任何位置。试编一 4 字节装载子程序 LOAD4。4-16功能:RAM 中 4 个单元内容装载到工作寄存器。:(R0)=低字节地址指针出口:(R7R6R5R4)=装入的 4 个单元内容试编一查表求平方子程序 SQR。功能:用指令 MOVCA,A+PC 求平方值(x15)。:(A)=x 出口:(A)=x*x试编一多字节右移子程序 NRRC。功能:n 字节数右移一位(相当除 2)。:(R0)=操作数高字

5、节地址指针(R7)=字节数 n出口:(R0)=操作数低字节地址指针试编一多字节乘以 10 子程序 MUL10。4-174-184-19功能:RAM 中的 n 字节数乘以 10。:(R0)=操作数低字节地址指针(R7)=字节数 n出口:(R0)=操作数高字节地址指针试编一 3 字节数乘 1 字节数子程序 MUL4。功能:3 字节数乘以 1 字节,乘积为 4 字节:(R0)=被乘数低字节地址指针(R2)=乘数出口:(R1)=乘积高字节地址指针试编一 4 字节数除以 1 字节数子程序 DIV4。功能:4 字节数除以 1 字节,商为 3 字节:(R0)=被除数低字节地址指针4-204-21(R6)=除

6、数 出口:(R3R4R5)=商(R2)=余数4-22 把长度为 10H 的字符串从RAM 的输入缓冲区 inbuf 向设在外部 RAM 的输出缓冲区outbuf 进行传送,一直进到遇见回车符 CR 或整个字符串传送完毕.4-23RAM 从 list 单元开始存放一正数表,表中之数作无序排列,并以“”作结束标志.编程实现在表中找出最小数.求 8 个数的平均值,这 8 个数以表格形存放在从 table 开始的单元中.把一个8 位二进制数的各位用 ASCII 码表示之(亦即为”0”的位用 30H 表示,为”1”的位用劲 1H 表示).该数存放在RAM 中 byte 单元中.变换后得到的 8 个 AS

7、CII 码存放在外部 RAM 以 buf 开始的单元中去.4-26 ASCII 码字符中最后一个非空格字符,字符串从外部 RAM8100H 单元开始存放,并用一个回车符(0DH)作结束.编程实现搜索并把搜索到的非空格字符的地址存入和 41H 中,其中高字节放入 41H 单元.RAM 单元 40H4-27 比较两个 ASCII 码字符串是否相等.字符串的长度在RAM41H 单元,第一个字符串的首地址为 42H,第二个字符串的首地址为 52H.如果两个字符串相等,则置RAM40H 为00H;否则 404-28 在外部 RAM 首地址为 table 的数据表中,有 10 个字符的数据.编程将每个字节

8、的最无条件地置”1”.4-29 将 8000H 开始的有 200 个字节的源数据区,每隔一个单元送到 4000H 开始的数据区.在目的数据区中,每隔两个单元写一个数.如遇 0DH(回车)则传送结束.4-20 输入缓溃区inbuf 存有80 个字节,编程实现将其所有的组分隔符(1DH)的地址依次压入separ 栈中.4-31 从RAM 缓冲区 buffin 向外部 RAM buffout 传送一个字符串,遇 9DH 结束,置 PSW的 F0 位为”1”;或传送完 128 个字符后结束,并置 PSW 的 OV 位为”0”.4-32 编写序。运行的定时器中计数器值并送 LED 显示器显示的程序。可根据需要定义子程4-33 求 16 位带符号二进制补码数的绝对值。假定补码放在求得的绝对值仍放在原单元中。RAM 的 num 和 num+1 单元中,4-34 求 16 位补码数的原码。16 位补码数放在得到的原码仍放在原单元中。RAM 的 data 和 data+1 单元中,转换后4-35 从RAM20H 单元开始存放一组带符号数,字节个数存在 1FH 中。请统计出其中大于0、等于 0 和小于 0 的数的数目,并把统计结果分别存人 one、two 和 three3 个单元中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论