首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HC12,存储数据并对数据执行OR

HC12,存储数据并对数据执行OR
EN

Stack Overflow用户
提问于 2013-04-19 00:01:43
回答 1查看 131关注 0票数 0

问题问

编写一个汇编程序,它将程序本身的可执行部分的第一个字节存储在内存中的变量中(用机器语言表示)或用11110000(2 )进行编辑。这个程序应该给出一个正确的结果,而不依赖于加载的位置。

解决这个问题的方法是

代码语言:javascript
复制
; Prepared for Metrowerks Codewarrior v3.

    include preamble.inc    ; Do not change this line.

;******************************************************************
;* Your main program instructions must immediately follow the     *
;* label "ENTRY".  This label must not be changed.                *
;******************************************************************

; Data Declarations Follow:
      org   $0000

; Main Program :
      org   $0800       
ENTRY:
START     ldaa     START       ; A <== (M[START])    

      oraa    #%11110000  ; A <== (A) OR %11110000


; Halt execution
    swi
    nop

; Subroutine Area Follows:
    org $0A00

; Physical end of the program:
    end

现在我的问题是,我不明白这是在做什么。例如,

代码语言:javascript
复制
START ldaa START

这是什么加载到蓄能器a?它是否加载数据开始,并调用地址开始与数据开始?此外,如何开始加载到累加器a?你能在上面加载字符吗?

也不明白OR的目的。也许有一个重要的概念,我应该从中挑出来,但我不知道那是什么。

HC12手册:http://www.eng.uwo.ca/electrical/e-shop/micros/HC12%20CPU12%20Reference%20Manual.pdf

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-19 00:26:22

这一行有几个部分:

代码语言:javascript
复制
START ldaa START

左边的START是一个标签。然后是指令ldaa及其操作数,这是对刚刚声明的START标签的引用。

ldaa指令用在操作数中指定的地址处找到的字节加载累加器A。在这种情况下,这意味着加载在START标签之后找到的第一个字节。

oraa只是在执行问题语句指定的OR操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16095074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档