网站大量收购闲置独家精品文档,联系QQ:2885784924

法政大学国际文化学部.DOC

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
法政大学国际文化学部

法政大学国際文化学部 情報システム概論担当 重定 如彦 2003年月日 第回   なお、CASLにはレジスタアドレス指定方式を使用する命令コードはありません。 間接アドレス指定方式  オペランド部分にメモリのアドレスを指定するところまでは直接アドレス指定方式と同じですが、間接アドレス方式では、指定したメモリのアドレスに格納されている数値をさらにメモリのアドレスとみなし、その数値のアドレスの内容を計算の対象とします。  例えばメモリの1000番地に2000、2000番地に3000という数字が格納されていた場合、間接アドレス指定方式で 1000 と指定することで、まずメモリの1000番地の内容を調べ、次にその内容である2000をメモリのアドレスとみなし、その内容である3000を計算の対象とします。間接アドレス指定方式をアセンブラ言語で記述する場合、一般的に以下のように2重に()で括って記述する場合があります。 LD GR1,((1000)) ;(1000番地の内容)の番地の内容をGR1に代入  なお、CASLには間接アドレス指定方式を使用する命令コードはありません。 指標アドレス指定方式  直接アドレス指定方式に似ていますが、指定したアドレスに特定の汎用レジスタの内容を加えたアドレスの内容を計算の対象とします。この時に使われる汎用レジスタのことを指標レジスタと呼びます。指標アドレス指定方式は、隣り合ったメモリの内容の計算を行う場合などに使われます。CASLでは指標アドレス指定方式を使うことができます。 指標アドレス指定方式を使ったプログラム例  CASLでは、多くの命令コードの第3オペランドに指標レジスタとして汎用レジスタを記述することで、指標アドレス指定方式でアドレスを指定することができます。     LD   GR1, A, GR2 例えば上記のプログラムはメモリの(A+汎用レジスタ2の内容)番地の内容を汎用レジスタ1に代入するという意味を持ちます。 なお、CASLでは、指標レジスタにとして汎用レジスタ0(つまりGR0)を使用できないという仕様になっているので注意して下さい。また、第3オペランドを省略した場合は、直接アドレス指定方式で記述されたものとみなされます。 それでは、例としてメモリのA番地からA+4番地までの5個のアドレスに格納されている数値を足し算し、メモリのB番地に格納するという動作を行うプログラムを指標アドレス指定方式使って記述してみましょう。 1 START 2 LEA GR1,0 ;GR1に0を代入 3 LEA GR2,4 ;GR2に4を代入 4 LOOP ADD GR1,A, GR2 ;GR1にA+GR2の内容を足す 5 LEA GR2,-1,GR2 ;GR2から1を引く 6 JPZ LOOP ;演算結果が負でなければLOOPへ 7 ST GR1,B ;GR1の内容をB番地に格納 8 EXIT ;プログラム終了 9 A DC 1 ;A番地に1を代入 10 DC 2 ;A+1番地に2を代入 11 DC 3 ;A+2番地に3を代入 12 DC 4 ;A+3番地に4を代入 13 DC 5 ;A+4番地に5を代入 14 B DS 1 ;結果を格納するB番地を用意する 15 END まず、9~13行目で、メモリのA番地からA+4番地までにそれぞれ1,2,3,4,5という数値を格納します。このようにCASLでは隣り合った行にDC命令を記述するとそのデータは隣り合ったメモリの番地に格納されることになっています。また、14行目で計算結果を格納するメモリのB番地を用意しています。 プログラムでは、計算の途中結果をGR1に格納し、GR2指標レジスタとして使用することにします。そして、GR2の内容を4から0まで1ずつ減らすことによって、A+4番地からA番地の内容の合計を計算することにします。 まず、2行目でGR1の内容を0で初期化し、GR2の内容を4にします。4~6行目がループになっており、ループでは    4行目   GR1の内容に A+GR2 番地の内容を加算する    5行目   GR2の内容を1減らす    6行目   GR2の内容が0以上ならば4行目に戻る という動作が繰り返し行われます。このループを一回行う度に、GR2の値が4,3,2,1,0,-1と一つずつ減っていき、-1になった時点でループを終了するので、結果としてGR1の中にはメモリのA番地からA+4番地の内容の合計が格納されることになります。そして7行目で答えであるGR1の内容をメモリのB番地に格納しています。 その他の命令  これまで解説しなかった命令について解説します。 比較演算命令  比

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档