单片机汇编语言程序,以下程序哪错了为啥

作者&投稿:通紫 (若有异议请与网页底部的电邮联系)
单片机汇编语言,我的程序到底哪里错了,老是说语法错误~

ORG 0000H
LJMP LOOP
ORG 0030H
LOOP: MOV 59H,#50H
MOV A,59H
MOV R0,A
MOV A,#00H
MOV @R0,A
MOV A,#25H
MOV 51H,A
MOV 52H,#70H
END
50H=00 ;51H=25;52H=70

(D)把data单元的内容乘以10 ( 注 题目有问题,如果 data 大于 25 或者 19H , 就没有答)

MOV R0,#data ; R0 = data
MOV A,@ R0 ; A = (data) =data单元的内容
RL A ; A 循环左移 = A 乘 2
MOV R1,A ; R1 = A
RL A ; A 循环左移 = A 乘 2
RL A ; A 循环左移 = A 乘 2
ADD A,R1 ; A = A+R1 (把data单元的内容乘以10)
MOV @R0,A ; (@R0)=A ( data = A )

试试看:
MOV R0,#30H ;将16进制立即数30传送到R0。
MOV R1,#40H ;将16进制立即数40传送到R0。
MOVX A,@R0 ;将R0中所存放的地址中的数据传送到累加器A。
CJNE A,#40,NCH1 ;如果累加器A中数据等于40则顺序执行。否则转移到NCH1执行。
M: MOV B,A ;将累加器A中数据传送到寄存器B。
MUL AB ;将累加器A中数据同寄存器B相乘存于累加器A。
MOVX @R1,A ;将累加器A中数据传送到片外存储器R1寄存的地址中去。
INC R1 ;将R1中数据加1.

MOVX @R1,B ;片外没有寄存器B。
SJMP $ ;无条件相对转移指令用在此处是否恰当?

NCH1: JC NCH2 ;状态字PSW进位标志等于0,顺序执行。否则转移到NCH2执行。
SJMP M ;无条件转移到M执行。
NCH2: CJNE A,#20,NCH3 ; 如果累加器A中数据等于20,顺序执行。否则转移到NCH3执行。
N: CPL A ; 将累加器A中数据取反。
MOVX @R1,A ;将累加器A的数据传送到片外R0中所存放的地址中去。

SJMP $ ;同理,无条件相对转移指令用在此处是否恰当?

NCH3: JNC NCH4 ;状态字PSW进位标志等于1,顺序执行。否则转移到NCH4执行。
SJMP N ;无条件转移到N执行。
NCH4: MOV B,#1/2 ;立即数是否不应该是分数?。
MUL AB ;将累加器A中数据同寄存器B相乘存于累加器A。
MOVX @R1,A ;将累加器A中数据传送到片外存储器R1寄存的地址中去。
SJMP $ ;无条件相对转移指令,停机状态。
END ;程序停止

NCH4: MOV B,#1/2 --这一行,有问题
MUL AB
MOVX @R1,A

想要把A中内容除以2,应该使用右移指令。

NCH4: MOV B,#1/2
这个错了

楼主,不知道你问的是编译错误还是计算出的结果错误.没看出什么语法错误.

第9行中的MOVX @R1,B写错了


单片机课程设计电梯程序设计汇编语言
汇编语言,才看到,算了,你别人的回答吧 ⑥ 求单片机课程设计 用汇编语言设计计数器(要求从0~9999,... 求单片机课程设计 用汇编语言设计计数器(要求从0~9999,... 片机课程设计报告 题目 计时器设计 班级电信 093 学号090301334 姓名周剑 时间2010.12.20 成绩 指导教师 石巧云 目录 一、前言………1...

单片微机原理汇编与C51及接口技术内容简介
本书专注于MCS-51单片机为核心,深入剖析微型计算机的基本原理和接口技术。首先,它从基础出发,讲解了微型计算机的构造和工作原理,以及汇编语言程序设计的入门知识。接着,详细探讨了MCS-51单片机的内部结构和接口,包括其扩展方法,帮助读者理解单片机的内部运作机制。对于存储设备,书中涵盖了半导体存储器...

单片微机原理汇编与C51及接口技术图书目录
介绍了计算机中的数制、编码,以及逻辑运算和部件,如触发器、寄存器和计数器。深入剖析了MCS-51单片机的基本组成,存储器配置,以及不同系列单片机的特点。第2章 汇编语言与汇编程序 讲解了符号指令的寻址方式和常用指令,包括数据传送、逻辑运算等,并介绍了伪指令和指令时序。第3章 汇编语言程序设计 涉...

汇编语言
装配的语言(AssemblyLanguage)面向机器的编程语言。总成:汇编语言翻译成机器语言被称为一个汇编程序。汇编编写汇编语言程序翻译成对应的机器语言翻译程序。输入汇编程序汇编语言编写的源代码,输出的是目标机器语言程序。大会语言为特定的计算机或计算机系列设计的面向机器的语言指令,汇编器和汇编指令的执行。汇...

汇编语言和高级语言的区别是什么?
1、可读性:高级语言可读性、可维护性较佳,汇编语言的可读性较差。2、程序的执行效率:汇编语言程序的占用空间小,执行速度快,执行效率高,高级语言占用的空间大,执行效率较低。3、可维护性:汇编语言可维护性低很多,代码复杂,针对性撰写程序,可以得到速度快、稳定性高的结果。高级语言的可维护性较...

简述CPU执行一条指令的过程
几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:取指令、指令译码、执行指令、访存取数、结果写回。1.取指令阶段 取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的...

请教8051汇编指令
8051系列单片机汇编语言指令速查表编号指令名称指令助记符指令说明数据传送类指令1一般传送MOV A, #data将立即数#data送累加器A2MOV direct, #data将立即数#data送片内RAM direct地址单元内3Mov Rn, #data将立即数#data送寄存器Rn4Mov @Ri, #data寄存器Ri内为RAM地址,将立即数#data送该地址单元内5Mov direct...

单片机汇编语言的几个疑问
3、要想能高效的调试大的汇编程序,首先要求程序本身的编制应该规范。关于这一点我有些感触,就算是经验吧,供参考(我曾经用汇编做过50多K机器码的程序)。单片机的执行其实是单一线程的,一般只有两种情况会偏离原来的流程,一种是中断服务子程序,注意别忘了使用RETI;还有就是普通子程序,别忘了使...

编程问题请教高手
计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。计算...

单片机(汇编语言)需要的软件?
51单片机是Keil 软件 pic单片机是MPLAB软件 汇编要将编辑文件要保存为.asm为后缀的文件(c语言则是.c为后缀)avr单片机是avr studio 或iccavr软件 汇编要将编辑文件要保存为.s为后缀的文件(c语言则是.c为后缀)51单片机可以很多下载软件 将你的汇编程序 在Keil 软件中设置为:options for target 1-...

西山区15379149756: 汇编程序问题,下面这个程序错哪里了?????????????????难道是[1]吗 -
隗费排石: 假设你这段代码是8086汇编语言代码. 不知道你的编程意图,只能帮你改一下代码中的3处错误.MOV AX,0FFFH ; 数字最后加了H MOV DS,AX MOV word ptr [1],5555 ; 前面指定类型是字 SUB AX,AX MOV BX,1 MOV AX,DS:[BX] ; 段跨越前缀加加上冒号这样你再自己试试

西山区15379149756: 刚接触单片机 编的程序有一个错误找半天找不出来啊 高手帮忙看看下面程序是哪儿错了 啊 急急急~ 感激不尽 -
隗费排石: 第三行的警告是因为没有声明init()函数,需要在main函数之前声明一下.第六行的错误是因为“flag_10ms”在使用前没有声明,需要在使用之前声明.同样下面的“flag_10ms”也是这个原因.另外我看“flag_20ms”也没有声明

西山区15379149756: 我这个汇编程序哪儿错了? -
隗费排石: DX换成si,不能用[DX]

西山区15379149756: 单片机汇编语言,我的程序到底哪里错了,老是说语法错误
隗费排石: 只说语法的问题,逻辑就没看了哈.改成这样试试:ORG 0000HLOOP: MOV 59H,#50H MOV A,59HMOV R0,AMOV A,#00HMOV @R0,AMOV A,#25HMOV 51H,A MOV 52H,#70HEND

西山区15379149756: 大家看看这个单片机汇编语言错在哪了 -
隗费排石: 程序中没有提供定时器服务程序,也就是说虽然你对T0进行了初始化,但在程序运行过程中不会起到任何作用 程序在第一个运行周期后的实际循环运行中,只会执行 TTT:JNB P1.6,HHH LJMP TTT HHH:CLR EA CLR P1.4 LJMP MAIN 其他的都不在执行

西山区15379149756: 汇编语言以下程序是否有错 -
隗费排石: 我感觉这样写比较清楚loop1: lodsb cmp al, '.' jnz loop2 inc dxloop2: loop loop1

西山区15379149756: 下面的程序在单片机上不能用是哪里错了? -
隗费排石: 上面的程序在单机上,能不能用?是哪里错了?这个在单机上是不能用的,因为他本身不是单机的,所以说不能在单机上用

西山区15379149756: 51单片机实现语音输出的汇编程序出错了,请高手帮看看,谢啦! -
隗费排石: 你这是汇编语言的程序.存盘的文件的扩展名,应该用:.ASM.你现在,一定是用.C当做扩展名了,改过来,就不会出这样的错了.

西山区15379149756: 汇编语言中的程序错误问题 -
隗费排石: 把这三行弄到一行上, menuinfo db 'Menu',0ah,0dh, '0 for print 9X9 multiplication table',0ah,0dh, '1 for print ASCII table',0ah,0dh,'...

西山区15379149756: 求助:基于51单片机的12864汇编程序不知到底哪里错了!! -
隗费排石: NAME CS_T ?PR?CS_T?CS_T SEGMENT CODEPUBLIC CS_TRSEG ?PR?CS_T?CS_T 以上的是C里面嵌入汇编的设定 #include <intrins.h> #define _Nop_() _nop_() vodi CS_T() {unsigned char i = 0x4d;do{TH0 = 0;TL0 = 0;TR0 = 1;...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网