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

免费网站建设设计制作公司免费网站建设

免费网站建设设计制作公司,免费网站建设,网站建设利益分析,网站备案怎么这么麻烦ALIGN ALIGN expression ALIGN 语句将位置计数器设置为下一个地址模 2^表达式。 这可用于确保下一条语句在 2^n 边界上对齐。例如,对齐缓存行中的代码或数据。如有必要,汇编程序会创建一个间隙。间隔字节的内容因各个部分而异: 在data中未定…

ALIGN

ALIGN expression
ALIGN 语句将位置计数器设置为下一个地址模 2^表达式。 这可用于确保下一条语句在 2^n 边界上对齐。例如,对齐缓存行中的代码或数据。如有必要,汇编程序会创建一个间隙。间隔字节的内容因各个部分而异:

  • data中未定义。
  • const中的0。
  • code中的 NOP。

该段需要至少使用与 ALIGN 语句中使用的对齐方式相同的对齐方式进行声明。

Example MYDATA: SEGMENT EDATA ALIGN(6)RSEG    MYDATA
var1:   DSB     1ALIGN   5       ; align to 32 byte boundary
var2:   DSW     1

ORG

ORG expression
ORG 语句更改当前段的位置计数器,并为后续语句设置新的原点。表达式必须是没有前向引用的简单可重定位表达式。只能使用当前段中的绝对地址或符号值。表达式中可以使用美元符号字符 (‘$’),表示位置计数器的当前值。

遇到 ORG 语句时,汇编程序将计算表达式的值并更改位置计数器。

  • 如果 ORG 语句出现在绝对段中,则会为位置计数器分配指定的绝对地址值。位置计数器不能设置为低于分段基址的地址。
  • 如果 ORG 语句出现在可重定位段中,则会为位置计数器分配指定表达式的偏移量。例如,如果可重定位段从地址 1000h 开始,并且 ORG表达式的值为 1234h,则下一条语句的绝对地址为 2234h (1000h + 1234h)。

ORG 语句更改位置计数器,这可能会产生间隙,但不会创建新段。

注意:

  • 可以使用 ORG语句更改位置计数器并覆盖(或覆盖)现有代码或数据。之所以支持此功能,是因为旧程序使用此技术在同一物理地址上定义多个变量。如果以这种方式使用ORG 语句,则不会生成警告。
ORG     100h
ORG     RESTART
ORG     EXIT1
ORG     ($ + 15) AND 0FFF0h

RSEG

RSEG segment
RSEG 语句选择以前使用 SEGMENT 语句声明的可重定位段。

MYPROG  SEGMENT CODE     ; Declare the segmentRSEG    MYPROG   ; Select the segment

CSEG

CSEG 〚AT address〛
CSEG 语句在 CODE 空间中选择一个绝对段。

如果包含可选地址,则汇编程序将从该地址启动绝对段。有效地址范围为 0000h-0FFFFh。

如果省略可选地址,汇编程序将从地址 0 开始绝对段(如果未定义先前的绝对 CODE 段)。如果先前定义了绝对 CODE 段,则汇编程序将从该段的末尾继续。

注意:

  • 起始地址必须是绝对表达式。
  • AX51 汇编程序将 CSEG 语句转换为以下内容
?CO?modulename?n SEGMENT OFFS address

USING

USING expression
USING 语句指定使用哪个寄存器bank(0-3) 对 AR0-AR7 寄存器进行编码。选定的寄存器bank在目标文件中记录,内存区域由链接器保留。

一些 8051指令(如 PUSH 和 POP)只允许使用绝对地址。汇编器将绝对寄存器(AR0-AR7)替换为当前寄存器bank中寄存器的物理地址。当指令 PUSH R0 无效时,PUSH AR0 有效。但是,汇编程序必须知道使用哪个寄存器bank来计算正确的物理地址。这就是 USING 语句的目的。

USING 语句不会生成任何代码来切换当前寄存器bank。汇编程序必须选择正确的寄存器库。例如,以下代码选择注册bank2:

PUSH    PSW               ; save the current register bank
MOV     PSW, #(2 SHL 3)   ;    set register bank 2
.
.
.
POP     PSW               ; restore saved register bank

物理地址的计算方法如下:

(register bank × 8) + register

注意:

  • 请仔细使用 EQU 语句定义绝对寄存器 (AR0-AR7) 的符号。符号值在定义时计算(而不是使用时)。如果随后使用 USING
    语句更改了寄存器库,则定义的符号将具有不正确的地址,并且生成的代码可能会失败。
USING   3     ; select register bank 3
PUSH    AR2   ; push R2 in bank 3 (address 1Ah)USING   1     ; select register bank 1
PUSH    AR7   ; push R7 in bank 1 (address 1Fh)

_ERROR_

_ERROR_ text
__ERROR__语句使用指定的文本生成错误消息。

IF VARLEN > 10__ERROR__ "Variable Length is Too Long"
ENDIF

_WARNING_

_WARNING_ text
__WARNING__语句使用指定的文本生成警告消息。

IF VARLEN > 10__WARNING__ "Variable Length is Too Long"
ENDIF

CODE

symbol CODE address
CODE 语句将address(在 0000h-0FFFFh 范围内)分配给指定的symbol 。不能重新定义symbol 。

CO_START   CODE    00000h
CO_END     CODE    0FFFFhIVECT_0    CODE    00003h
IVECT_1    CODE    0000Bh
IVECT_2    CODE    00013h
http://www.hkea.cn/news/931790/

相关文章:

  • 青州网站制作哪家好aso优化哪家好
  • wordpress做网站优点郑州网站seo优化
  • 宝安做棋牌网站建设找哪家公司好湖南长沙疫情最新消息
  • 四川专业网站建设中国十大企业培训机构排名
  • 怎么切页面做网站灰色词首页排名接单
  • 网站右侧浮动广告代码百度推广代理公司广州
  • 固原建站公司旺道seo推广系统怎么收费
  • 适合做外链的网站海外广告联盟平台推广
  • 建筑模板规格型号郑州厉害的seo顾问
  • ppt做书模板下载网站有哪些内容国际婚恋网站排名
  • 上海网站建设内容更新网络营销策划目的
  • 重庆市建设信息网站关键词查询网
  • 做哪种网站流量大怎么打广告宣传自己的产品
  • 免费表白网站制作seo网络优化推广
  • 网站建设中可能升级中国科技新闻网
  • 网站制作内容文案网站如何快速被百度收录
  • 淘宝淘宝网页版登录入口免费seo公司
  • 竹溪县县建设局网站短视频营销
  • 好的网站有哪些搜索引擎seo是什么意思
  • 做音乐网站赚钱吗做小程序的公司
  • 坪地网站建设域名流量查询工具
  • 网站建设部署万能推广app
  • 网站的重要性怎么做个网站
  • 做网站的经验百度旗下有哪些app
  • 化工网站开发推广点击器
  • 怎么访问日本竹中建设网站外贸seo推广
  • 惠阳建设局网站引流推广接单
  • 北京通州网站建设公司如何建立公司网站网页
  • 网站换程序301seo优化按天扣费
  • html5 网站自适应长尾关键词挖掘爱站工具