新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 乘法指令之:MUL乘法指令

        乘法指令之:MUL乘法指令

        作者: 時間:2013-09-13 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257062.htm

        2.指令的語法格式

        MUL{cond>}{S}Rd>,Rm>,Rs>

        ①cond>

        為指令編碼中的條件域。它指示指令在什么條件下執行。當cond>忽略時,指令為無條件執行(cond=AL(Alway))。

        ②S

        S位(bit[20])決定指令的操作是否影響CPSR中的條件標志位N位和Z位的值。當S=1時,更新CPSR中的條件標志位的值;當S=0時,指令不更新CPSR中的條件標志位。

        ③Rd>

        寄存器位目標寄存器。

        ④Rm>

        第一個乘數所在寄存器。

        ⑤Rs>

        第二乘數所在寄存器。

        3.指令操作的偽代碼

        指令操作的偽代碼如下面程序段所示。

        IfConditionPassed{cond}then

        Rd={Rm*Rs}[31:0]

        IfS==1then

        Nflag=Rd[31]

        Zflag=ifRd==0then1else0

        Cflag=unaffected

        Vflag=unaffected

        注意

        當程序計數器r15被用作Rd>、Rm>、Rs>時,指令的執行結果不可預知;當目的寄存器Rd>和Rm>一樣時,指令的執行結果不可預知;在版本v5以后的體系中,在MULS指令執行結束后,標志位C保持不變,在v5以前的版本中,MULS指令執行后,標志位C結果不可預知。

        4.指令舉例

        (1)R1=R2×R3

        MULR1,R2,R3

        (2)R0=R3×R7,同時設置CPSR中N位和Z位。

        MULSR0,R3,R7


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 铅山县| 永和县| 白沙| 盐边县| 建始县| 龙游县| 乌拉特后旗| 怀远县| 剑川县| 义乌市| 天峨县| 白水县| 广丰县| 建宁县| 宁化县| 东山县| 资溪县| 阿拉善右旗| 梅州市| 贺州市| 上高县| 土默特右旗| 土默特左旗| 鸡泽县| 鹤庆县| 固镇县| 凉山| 东阳市| 施秉县| 浦东新区| 库伦旗| 安陆市| 隆化县| 望城县| 旅游| 顺平县| 日照市| 双流县| 象州县| 六盘水市| 达日县|