zoukankan      html  css  js  c++  java
  • [转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 贰

    注意:本文经过原作者授权转译,转载请标明出处

    原文地址:http://mrjester.hapisan.com/04_MC68/Sect02Part06/Index.html

    条件允许建议阅读原文,网上非中文资料还是较多,当作锻炼英文岂不美哉
    翻译若有不足之处欢迎批评指正

    译文:

    "当我小的时候,父母告诉我'吃完别浪费,中国和印度的孩子还在饿肚子',现在我跟我的女儿们说:'快把作业做完,中国和印度的人们正在如狼似虎地抢走你们的工作'" ---- 托马斯 弗里德曼 (Thomas Friedman),《世界是平的》的作者

    简介

    在上一节,我给大家留了一串指令。在这一节,让我们康康答案与你的解答是否有出入

    答案

        move.w     #$0010, d0
        move.w     d0, $00000040
        move.w     d0, d1
        add.w      d1, d1
        add.w      d0, d1
        sub.w      $00000040, d1
        swap       d1
        move.w     d0, d1
        movea.l    #$00000040, a4
        add.w      (a4), d1
        move.w     d1, (a4)
        exg.l      d1, d0
        swap       d0
        clr.w      d0

    每个数据寄存器初始值都是00000000

        move.w     #$0010, d0

    0010被写入到d0中,d0现在的内容是00000010

        move.w     d0, $00000040

    d0中的一个被复制到内存中地址为00000040的地方,0010被复制了,00被复制到内存地址0000004010被复制到内存地址00000041

        move.w     d0, d1

    d0中的一个被复制到d1d1现在的内容是00000010

        add.w      d1, d1

    d1中的一个被加到d1中 (加自己),0010 + 0010 = 0020d1现在的内容是00000020

        add.w      d0, d1

    d0中的一个被加到d1中,0020 + 0010 = 0030d1现在的内容是00000030

        sub.w      $00000040, d1

    内存中00000040位置的一个被复制出来并且去减d1,内存中0000004000000041位置的0010被读取为0010,然后去减d10030 - 0010 = 0020d1现在的内容是00000020

        swap       d1

    交换d1d1现在的内容是00200000

        move.w     d0, d1

    d0中的一个被复制到d1d1现在的内容是00200010

        movea.l    #$00000040, a4

    00000040写入到地址寄存器a4

        add.w      (a4), d1

    内存中a4内容所指向的那个被加到d1中。a4中的内容是00000040,所以内存中0000004000000041位置的0010被读取为0010,再去加上d10010 + 0010 = 0020d1现在的内容是00200020

        move.w     d1, (a4)

    一个d1中的被复制到a4的内容所指向的内存中。0020被复制了,所以00000040位置变成了0000000041位置变成了20

        exg.l      d1, d0

    交换d1d0的内容,现在d1的内容是00000010d0的内容是00200020

        swap       d0

    交换d0d0现在的内容是00200020 (内容没有发生变化,因为它里面高位和低位的内容是一样的)

        clr.w      d0

    擦除d0中的一个,现在d0的内容是00200000

    好了,结果就是00200000,你做对了吗?如果没有的话没关系,只要你知道每个指令都是干什么的,做对是早晚的事

    目录
    上一篇:[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 贰 - 基本指令 | 5. CLR 指令
    下一篇:[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 叁 - 位 指令 | 1. NOT 指令

  • 相关阅读:
    [SDOI2008]递归数列
    [SCOI2008]奖励关
    [SCOI2010]幸运数字
    [ZJOI2007]矩阵游戏
    [HAOI2006]旅行
    [ZJOI2008]泡泡堂
    [BZOJ1800][Ahoi2009]fly 飞行棋
    [POJ2288]Islands and Bridges
    [LUOGU] 3959 宝藏
    [BZOJ]1029: [JSOI2007]建筑抢修
  • 原文地址:https://www.cnblogs.com/strawhatboy/p/12320719.html
Copyright © 2011-2022 走看看