情報処理 CASL II プログラミング 第12回 シフト演算 大阪府立工業高等専門学校 福嶋 茂信 シフト命令 16ビットのデータが入っている レジスタの内容の全ビットを一斉にずらす命令 左にずらす×2-N倍と同じ 右にずらす×2N倍と同じ 簡単な例(符号なし、4ビットデータ)で考えてみよう: 0 1 0 0 22 1 bit右にずらす 1 bit左にずらす 23 1 2倍になる 0 0 0 0 0 1 0 21 1/2になる シフト命令のルール 1. 2. 3. データのなくなったビットには、0か1かが自動的に埋 め込まれる 元のデータの2N(Nは整数)となるように あふれたビットは、オーバーフローフラグに入る 符号ありのデータかどうかでコマンドが使い分ける 符号あり:SLA, SRA 符号なし:SLL, SRL SLA, SRA, SLL, SRL命令 SLA SRA SLL SRL r, adr [,x] r, adr [,x] r, adr [,x] r, adr [,x] LADコマンドと似た使い方 adrは、adrの示す番地の中身ではなく、アドレス 使い方 SLA GR0,2 ; GR0を左に2ビットシフト SLL命令 元のGR0 SLA命令で放り出され、OFフラグに入る 0011000101110101 最下位ビット ①SLL GR0,1 0110001011101010 0が入る ②SLL GR0,1 1100010111010100 ①のSLL命令で、OFフラグには、0が入る ②のSLL命令で、OFフラグには、0が入る 0が入る ※複数ビット分シフトすると、最後に放り出されたビットの値が入る SRL命令 元のGR0 SRL命令で放り出され、OFフラグに入る 0011000101110101 0が入る 最下位ビット ①SRL GR0,1 0001100010111010 0が入る ②SRL GR0,1 0000110001011101 ①のSRL命令で、OFフラグには、1が入る ②のSRL命令で、OFフラグには、0が入る ※複数ビット分シフトすると、最後に放り出されたビットの値が入る SLA, SRAコマンド (SLL, SRLコマンドと、どう違うか) SLA, SRAコマンドでは、符号ビットは不変 SRA命令の場合、最上位ビットと同じビット が挿入 SLA命令 元のGR0 SLA命令で放り出され、OFフラグに入る 0011000101110101 変化なし 最下位ビット ①SLA GR0,1 0110001011101010 0が入る ②SLA GR0,1 0100010111010100 0が入る ①のSLA命令で、OFフラグには、0が入る ②のSLA命令で、OFフラグには、1が入る ※複数ビット分シフトすると、最後に放り出されたビットの値が入る SRA命令(正数のとき) 最上位ビット変化なし 元のGR0 SRA命令で放り出され、OFフラグに入る 0011000101110101 0が入る ①SLA GR0,1 最下位ビット 0001100010111010 0が入る ②SLA GR0,1 0000110001011101 ①のSLA命令で、OFフラグには、1が入る ②のSLA命令で、OFフラグには、0が入る ※複数ビット分シフトすると、最後に放り出されたビットの値が入る SRA命令(負数のとき) 最上位ビット変化なし 元のGR0 SRA命令で放り出され、OFフラグに入る 1011000101110101 1が入る ①SLA GR0,1 最下位ビット 1101100010111010 1が入る ②SLA GR0,1 1110110001011101 ①のSLA命令で、OFフラグには、1が入る ②のSLA命令で、OFフラグには、0が入る ※複数ビット分シフトすると、最後に放り出されたビットの値が入る SLA命令、SRA命令の オーバーフローの影響について 左シフト シフトの方向 符号ビットと同じ値を 持つビットの消失か いいえ はい 2N倍 無意味 右シフト 1つの値を持つビット の消失か いいえ はい 符号は何か 正 端数切り捨て 2-N倍 負 端数切り上げ Q12-01 GR0に#4030がはいっている。以下の命 令を実行したあとのGR0の値は何か? 1. 2. 3. 4. SLL GR0,2 SRL GR0,2 SLA GR0,2 SRA GR0,2 Q12-02 GR0に#E430がはいっている。以下の命 令を実行したあとのGR0の値は何か? 1. 2. 3. 4. SLL GR0,2 SRL GR0,2 SLA GR0,2 SRA GR0,2 講義資料の置き場など URL http://www.geomdog.com/opct http://www.geomdog.com/opct/InfoP/InfoP.html
© Copyright 2024 ExpyDoc