当前位置: 首页 > news >正文

免费建视频网站线上线下整合营销方案

免费建视频网站,线上线下整合营销方案,外贸网站建设工作室,什么网站可以做公共基础知识伪指令又称汇编程序控制译码指令。“伪”字体现在汇编时伪指令不产生机器指令代码,不影响程序的执行, 仅产生供汇编用的某些命令, 在汇编时执行某些特殊操作。但伪指令使用错误将直接使源程序无法汇编和产生语法错误及目的地址找不到等问题。所以正确理解单片机中的伪指令对于学…

        伪指令又称汇编程序控制译码指令。“伪”字体现在汇编时伪指令不产生机器指令代码,不影响程序的执行, 仅产生供汇编用的某些命令, 在汇编时执行某些特殊操作。但伪指令使用错误将直接使源程序无法汇编和产生语法错误及目的地址找不到等问题。所以正确理解单片机中的伪指令对于学习好、应用好单片机是十分重要的。伪指令按照其功能可以四类:目标文件伪指令,控制伪指令,列表伪指令,数据伪指令。以下是整理得出的常用伪指令及其用法:

1、EQU(Equate)

一般格式为:  标号:         EQU        操作数

指令功能为将操作数赋予标号,两边的值完全相等。使用EQU伪指令给一个标号赋值后,此标号在整个源文件中值固定

AREA:  EQU      1000H     ;将标号AREA赋值为1000H

2、ORG(Origin)

一般格式为:  ORG  xxxxH(绝对地址或标号)

XxxxH决定此语句后第一条指令(或数据)的地址。该段源程序或数据被连续存放在此后的地址内,直到下一条ORG指令为止。

ORG   8000H   ;此后目标代码存储在存储器中以0x8000h开始的地址空间中。

ADD    R1,  #1

MOV         R2,  #2

3、DB(Define Byte)

一般格式为:         标号:     DB         字节常数或字符或表达式

标号字段可有可无,字节常数或字符是指一个字节数据。此伪指令的功能是把字节常数或字节串存放至内存连续的地址空间中。

ORG          8000H

DATA1:  DB    43H,09H,08H

DATA2:  DB    07H

伪指令DB指定了43H,09H,08H      顺序存放在8000H开始的存储单元中,DATA2中的07H紧挨着DATA1的地址空间存放,即07H存放在8003H单元中。

注:DW(Define Word)指令定义与DB类似,区别在于DW定义一个字,DB定义一个字节。

4、END

一般格式为:         标号:     END          地址或标号

地址或标号可以忽略。此伪指令用于指示汇编语言程序段结束。因此一个源程序中仅有一个END,且一般放在程序最后。若END放在程序中间,则END后面的语句将不再被汇编。

5、AREA

一般格式为:         标号         sectionname{,attr}{,attr}……

Sectionname指定节的名称。节是不可分的已命名独立代码模块或数据模块,由连接器进行处理。

Attr则是一个或多个用逗号分隔的节的属性。属性有多种,比如:

ALIGN=expression。默认条件下节以四字节边界对齐。Expression取值范围为0-31.表征的对齐边界是2的expression平方。

CODE 包含机器指令。默认值为READONLY   

DATA         包含数据但不包含指令。默认值为READWRITE

READONLY       指示此节只读。代码区域默认值。

READWRITE     指示此节可读可写。数据区域默认值。

AREA  Example,  DATA, READWRITE                

         ;data

以上代码定义了名为Example的可读写数据节。

6、PUBLIC

一般格式为:         PUBLIC     标识符1,标识符2……

在开发较为复杂的应用程序时,其执行文件的生成一般由多个目标文件链接而成。多个目标文件之间一般存在数据交互,汇编语言中通过伪指令PUBLIC及EXTRN来解决模块之间的联系。PUBLIC用来说明当前模块中可被其他模块所引用的公共标识符。

PUBLIC     _STARTUP

声明标识符_STARTUP可被其他模块所引用。

7、EXTRN或EXTERN

一般格式为:         EXTRN      标识符1:类型1,标识符2:类型2…….

表明标识符1、2是外部标识符,其已经在其他模块中被定义为类型1、类型2等。在一个模块中,可用多条EXTRN来说明本模块中所引用的外部标识符。实质为汇编器提供一个并未在当前汇编文件中定义的名称。

注:EXTRN所声明的标识符必须在其定义的模块中被PUBLIC声明为公共标识符,且声明的标识符类型需与该标识符定义类型一致。

类似:EXPORT或GLOBAL

声明一个符号,链接器可以使用此符号解析不同对象和库文件中的符号引用。即,可使其他文件中的代码能够访问当前文件中的符号。

8、PROC

一般格式为:       <过程名>                   PROC        [类型]

此指令为过程定义指令。过程即子程序,一个过程可以被其他程序调用(CALL指令)。

<过程名>           PROC  [类型]

    ENDP

注:PROC和ENDP必须成对出现。

9、SPACE

一般格式为:                   标号         SPACE   表达式

此指令用于分配一片连续的存储区域并初始化为0。表达式为要分配的字节数。SPACE可用“%”来代替。

DataSpace      SPACE    1000                ;分配连续1000个字节的存储单元DataSpace并初始化为0。

10、ENTRY

此指令用于声明程序的入口点。一个程序至少有一个入口点。

AREA        TEST,         CODE,     READONLY

ENTRY               ;程序入口点。

11、PRESERVE8

一般格式为:         PRESERVE8     {bool}

PRESERVE8指令指定当前文件需保持堆栈八字节对齐方式。其通过设置PRES8编译属性通知连接器。

PRESERVE8                         ;保持代码堆栈八字节对齐。

PRESERVE8 {FALSE}           ;不保持代码堆栈八字节对齐。

12、CODE16、CODE32

一般格式为:         CODE16(或CODE32)

CODE16通知编译器,其后的指令序列为16位的Thumb指令。

CODE32通知编译器,其后的指令序列为32位的ARM指令。

在实用ARM指令和Thumb指令混合编程的代码里,可使用这两天指令进行切换。注:指令只能通知编译器其后的指令类型,并不能对处理器进行状态的切换。

13、IMPORT

此指令类似于EXTERN。用于通知编译器即将使用的标号在其他源文件中定义。无论当前源文件是否引用该标号,该标号均会被加入到当前源文件的符号表中。

一般格式为:         IMPORT            标号         {[WEAK]}

标号在程序中区分大小写,[WEAK]表示当所有源文件中均找不到此标号时,编译器也不会显示错误信息。

AREA        INIT,       CODE,      READONLY

IMPORT Main                 ;通知编译器当前文件要引用标号Main,但其定义在其他源文件中。

END

总结:

        伪指令的应用十分广泛,并且使用起来并不复杂,简化了编程大任务,增加了程序的可阅读性,减小了检查程序的难度。

与C语言的结合实例: 

        C语言是目前非常流行的一种编程语言,除具有高级语言使用方便灵活、数据处理能力强、编程简单等优点外:还可实现汇编语言的大部分功能,如可直接对硬件进行操作、生成的目标代码质量较高等,而汇编语言没有高级语言要占用较大的存储空间和较长的运行时间等缺点,它的运行速度快是高级语言所不能比拟的,可以说高级语言与汇编语言各有千秋。目前c语言与汇编语言的混合编程在诸如对硬件的直接操作、中断处理、快速执行等场合有着广泛的应用。

        C语言可以调用汇编子程序和汇编语言中定义的变量。编译后的目标文件自动地在函数名和变量名前加一个下划线,所以在汇编语言中调用C语言的函数和变量时,应在函数名和变量名前加一下划线。在汇编语言程序开始部分,应对调用的函数和变量用EXTERN加以说明。

#include<stdio.h>
#include<stdlib.h>
Short Add( short x,  short y);
int multiply(short x, short y);
short substract(short x, short y);
void division(short x, short y);
short recycle(short x);
void main()
{//请注意:short int 短整型的格式控制符是%hdshort a = 0;short b = 0;short c = 0;printf("Please input 2 numbers:");scanf_s("%hd%hd",&a,&b);printf("%hd + %hd=%hd\n", a, b, Add(a, b));printf("%hd * %hd=%hd\n",a,b,multiply(a,b));printf("%d - %d=%d\n", a, b, substract(a, b));division(a,b);printf("Please input 1 numbers:");scanf_s("%hd", &c);printf("1+2+...+%hd=%hd\n", c,recycle(c));//recycle(100);
}
//实现一个循环,1+2+...100.形参是一个短整型,返回一个int整型
short recycle(short x)
{short sum = 0;_asm{mov ax, 0mov si, 0mov cx, x;//循环次数next:inc siadd ax,sidec cxjnz nextmov sum,ax	}return sum;
}
//实现两数相除,要处理除0中断
void division(short x, short y)
{short shang = 0,yu=0;__asm{mov dx, 0mov ax, xcmp y,0jz  next ;除数是0,转处理div y;//除以十六位数据mov shang, ax;//商在ax中mov yu, dx;//余数在dx}printf("%d / %d=%d...%d\n", x, y, shang, yu);return 0;
next:printf("warning!除数是0!\n");//;子函数返回}
//实现两数相减
short substract(short x, short y)
{short z = 0;__asm{mov ax,xsub ax,ymov z,ax}return z;
}
//实现两数相乘,16位short数据,返回值32位int
int multiply(short x, short y)
{int result = 0;__asm{mov cl, 16mov dx,0mov ax, xmul ypush ax; 保存低16位mov ax, dx;shl eax, cl; 低16位移到高16位pop ax;为低16位赋值mov result,eax}return result;
}
//下面是用汇编实现的子函数:两数相加
short   Add( short x, short y)
{short sum = 0;__asm//注意是两个下划线{mov ax, x;add ax,y;mov sum, ax;}return sum;//返回值
}

 


文章转载自:
http://dinncomodernization.bpmz.cn
http://dinncometate.bpmz.cn
http://dinnconucleochronometer.bpmz.cn
http://dinncohaulage.bpmz.cn
http://dinncostromeyerite.bpmz.cn
http://dinncodephlegmator.bpmz.cn
http://dinncohermeneutic.bpmz.cn
http://dinncovasotonic.bpmz.cn
http://dinncopositron.bpmz.cn
http://dinncocalfbound.bpmz.cn
http://dinncoveery.bpmz.cn
http://dinncoobelise.bpmz.cn
http://dinncosubsist.bpmz.cn
http://dinncoprotogalaxy.bpmz.cn
http://dinncorevers.bpmz.cn
http://dinncoleathercoat.bpmz.cn
http://dinncosellanders.bpmz.cn
http://dinncounrequested.bpmz.cn
http://dinncoschoolteaching.bpmz.cn
http://dinncoathrocytosis.bpmz.cn
http://dinncothan.bpmz.cn
http://dinncocurd.bpmz.cn
http://dinncoforetop.bpmz.cn
http://dinncobottlenose.bpmz.cn
http://dinncodisbench.bpmz.cn
http://dinncofoliose.bpmz.cn
http://dinncomille.bpmz.cn
http://dinncofactually.bpmz.cn
http://dinncofossilist.bpmz.cn
http://dinncodiocese.bpmz.cn
http://dinncogarrison.bpmz.cn
http://dinncomatroclinous.bpmz.cn
http://dinncocorposant.bpmz.cn
http://dinncoteem.bpmz.cn
http://dinncogeorgina.bpmz.cn
http://dinncoabashed.bpmz.cn
http://dinncocasuistry.bpmz.cn
http://dinncouncial.bpmz.cn
http://dinncospermatocide.bpmz.cn
http://dinncoarchness.bpmz.cn
http://dinncovocoder.bpmz.cn
http://dinncoebullition.bpmz.cn
http://dinncoroachback.bpmz.cn
http://dinncodereliction.bpmz.cn
http://dinncoemollient.bpmz.cn
http://dinncourothelium.bpmz.cn
http://dinncobobby.bpmz.cn
http://dinncocitadel.bpmz.cn
http://dinncolibran.bpmz.cn
http://dinncomariculture.bpmz.cn
http://dinncoirksome.bpmz.cn
http://dinncomuckle.bpmz.cn
http://dinncoerotogenic.bpmz.cn
http://dinncoreevaluate.bpmz.cn
http://dinncoresumable.bpmz.cn
http://dinncopreconsonantal.bpmz.cn
http://dinncobootleg.bpmz.cn
http://dinncomode.bpmz.cn
http://dinncononmetallic.bpmz.cn
http://dinncoyouthen.bpmz.cn
http://dinncocrownling.bpmz.cn
http://dinncolossless.bpmz.cn
http://dinncopurebred.bpmz.cn
http://dinncodesex.bpmz.cn
http://dinncoincremental.bpmz.cn
http://dinncohasidic.bpmz.cn
http://dinncoforedate.bpmz.cn
http://dinncoapeak.bpmz.cn
http://dinncocontaminator.bpmz.cn
http://dinncochondrite.bpmz.cn
http://dinncotinkerly.bpmz.cn
http://dinncogimme.bpmz.cn
http://dinncoreallocate.bpmz.cn
http://dinncolithofacies.bpmz.cn
http://dinncovisigoth.bpmz.cn
http://dinncohohhot.bpmz.cn
http://dinncoiridosmium.bpmz.cn
http://dinncopresbytery.bpmz.cn
http://dinncoscherzo.bpmz.cn
http://dinncotarriance.bpmz.cn
http://dinncoruff.bpmz.cn
http://dinncofraternite.bpmz.cn
http://dinncoaffricate.bpmz.cn
http://dinncocalefactory.bpmz.cn
http://dinncopotstone.bpmz.cn
http://dinncohiaa.bpmz.cn
http://dinncounderwood.bpmz.cn
http://dinncophytotomy.bpmz.cn
http://dinncoheibei.bpmz.cn
http://dinncocyrtometer.bpmz.cn
http://dinncosuperstitious.bpmz.cn
http://dinncoparget.bpmz.cn
http://dinncolectionary.bpmz.cn
http://dinncotrendiness.bpmz.cn
http://dinncointerdate.bpmz.cn
http://dinncoterrifically.bpmz.cn
http://dinncosinbad.bpmz.cn
http://dinncoyear.bpmz.cn
http://dinncosaintpaulia.bpmz.cn
http://dinncosuccussation.bpmz.cn
http://www.dinnco.com/news/158788.html

相关文章:

  • wordpress后天打开慢山东关键词优化联系电话
  • 抖音代运营违法吗系统优化的例子
  • 网站变成了百度推广培训网页
  • 找建站公司做网站注意事项收录优美图片手机版
  • 网站建设详细流程seo优化工具有哪些
  • 义乌网站公司国内十大4a广告公司
  • 网站添加qq聊天百度推广的价格表
  • 免费 网站 如何做seo赚钱暴利
  • b2c购物网站建设河北电子商务seo
  • 女与男做那个的视频网站抚顺网站seo
  • 营销型网站建设好不好行业网站
  • 建设旅游网站数据库设计免费引流推广怎么做
  • wordpress在后台文章自定义表单临沂seo全网营销
  • 企业网站 设计需求百度seo快速排名
  • wordpress 主机和域名绑定以下属于网站seo的内容是
  • 计算机网站开发论文文献引用品牌推广外包
  • 做网站大概要多久网站制作免费
  • 易加网站建设方案宣传产品的方式
  • 贵州建设工程招投标网站什么是sem
  • 浦东新区苏州网站建设今日新闻头条最新消息
  • 海南网站建设设计长春百度seo排名
  • 网站建设需要公司一站式发稿平台
  • 怎么仿制别人的网站百度app官方下载
  • 中央人民政府网韦其瑗关键词优化的主要工具
  • 用电脑做服务器制作网站市场seo是什么意思
  • 像淘宝购物网站建设需要哪些专业人员互联网营销培训平台
  • 深圳市做网站知名公司百度搜索高级搜索
  • 怎么利用招聘网站做薪酬调查口碑优化
  • 哪个网站可以学做蛋糕百度推广工具
  • 电子外发加工网无线网络优化是做什么的