• ベストアンサー

アセンブラのコマンドについて

突然、下記のようなプログラム(アセンブラらしい)を多々渡されて、「これをCOBOLに変換して!!」といわれました。 解説書も無く、何アセンブラかも??で途方に暮れています(--;;;何アセンブラか教えて欲しいです。また、参考書or参考HPも。とにかく情報をください。お願い致します。 AAAAAA START R0 EQU 0    : R12 EQU 12 SAVE (14,12) BALR R3,0 USING *,R3,R4 LA R4,4095(R3) LA R4,1(R4) ST 13,OCSV1+4 LA 13,OCSV1 OPEN (TFIN,(INPUT,DISP)) OPEN (TFOUT,(OUTPUT,DISP)) RDIN ST 13,###@SV13 L 13,=A(###@RSV) GET TFIN,TW L 13,###@SV13 ST 13,###@SV13 L 13,=A(###@RSV) PUT TFOUT,TW L 13,###@SV13 B RDIN EOFIN CLOSE (TFIN,DISP) CLOSE (TFOUT,DISP) L 13,OCSV1+4 RETURN (14,12),RC=0 LTORG OCSV1 DS 18F OCSV2 DS 18F ###@RSV DS 18F ###@SV13 DS F DS 0D TFIN DCB DDNAME=TFIN, LRECL=0, EODAD=EOFIN, RECFM=FB, MACRF=(GM), BLKSIZE=0, DEVD=DA, DSORG=PS TFOUT DCB DDNAME=TFOUT, LRECL=0, RECFM=FB, MACRF=(PM), BLKSIZE=0, DEVD=DA, DSORG=PS DS 0D TW DC 1024C' ' END

  • chau
  • お礼率40% (30/75)

質問者が選んだベストアンサー

  • ベストアンサー
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.7

ファイルのコピーをしている事は間違いないようです。 ただ、マクロの部分を中心にまだわからないところが多々あります。 特にレジスター13がキーポイントのようです。 R13はいろんな使い方をされているようです。 (1)一つ思い出しましたが、昔、R13はサブルーチンの飛び先か戻り先のアドレス保持に使っていました。このプログラムもRETURNで終わっていますので戻りアドレスの保持をR13でしているようです。先頭の方でR13をセーブしていないのもそれが理由でしょう。 ST 13,OCSV1+4   ・   ・ L 13,OCSV1+4 がそのセーブと回復ですね。 (2)OPENマクロの中で18ワード(72BYTE)の領域(ワーク?)を欲しがるようです。そこでOCSV1の先頭アドレスをR13で渡しています。 (3)同様に、GETマクロ,PUTマクロでも同じ大きさの領域を要求すると見えて、R13で###@RSVの先頭アドレスを教えています。 残念ですが、L 13,###@SV13 と ST 13,###@SV13 が2個ずつあるのですが、よくわかりません。無意味のように思えてなりません。制御用プログラムなどでタイミング調整にこんな事をやったような気もするのですが。 私はこの辺が限界です。それではがんばって下さい。

chau
質問者

お礼

ymmasayanさん。本当にありがとうございました。<(_ _)> 今後、200本近く変換作業を行うらしく 凹んでいます。 ・・・・お陰様で、少しはプログラムを見て 考える知識が付きました。(まだまだですが、考えようと努力できる自信が・・・付いたかなぁ(^^;;;;;;) また、なにか????のコマンドがありましたら 再度投稿しますので これに懲りず 助言お願い致します。 本当に、ありがとうございました。<m(__)m> -----欲をいえば、ymmasayanさんの知識を購入したいですね(笑)

その他の回答 (7)

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.8

私もとっくに限界超えてま(^^; あとはマニュアル類で調べないと手が出ません。 汎用機で間違いなさそうですから、入手法はあるでしょう。 そもそも、これをCOBOLに直して実行したいということなら、COBOLを実行できる汎用機の環境があると思えますので, 何かしら資料があるのでは? もし、汎用機が無いのでしたら,移植そのものがあまり意味がないと思えますし。

chau
質問者

お礼

イロイロとありがとうございました。 汎用機のシステムをダウンサイジングするので、COBOLに変換するらしい・・・・です。それで、このような質問でした。 ただ、昔の汎用機の資料が無く(マニュアル込) プログラムをみて 変換するようです。(他人事に聞こえるが・・・他人事にしたい(^^;;;;) ??のコマンドがありましたら、再度投稿いたしますので そのときは宜しくお願い致します。<m(__)m> 助言 本当にありがとうございました。お陰様で、少しずつ理解できるようになってきました。たぶん。

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.6

私よりymmasayanさんの方が詳しそうですが, せっかくなのでもう少し書いていきます(^^; 間違いはymmasayanさんが指摘してくれると期待して。 >GET TFIN,TW ラベルTFINにあるDCB(Data Control Block?,Device?)の設定に従い、ラベルTWの領域に読み込む。 同様に、PUTならTFOUTの設定に従い,ラベルTWの内容を出力する。 >TW DC 1024C' ' TWがラベルで、ここのアドレスを表し、 DCがData Charcterかな? 1byte単位で1024byteの領域. つまり、ここがI/O用のバッファになります。 >TFIN DCB DDNAME=TFIN, .. >DSORG=PS TFINがラベル名で、DCBがマクロ名で、 データアクセス用の設定用マクロです。 Cで例えるなら,DCB型のstaticな構造体があって、 DDNAMEというメンバをTFIN(これはラベルでなく文字) で初期化, EODADはEOFINで初期化‥のような意味です。 COBOLでは例えられません(^^; EODADはEnd Of Data jump ADdressみたいな意味でしょう(^^; というわけで、1024単位でファイルのコピーをしているだけの感じですね。 ただ、データセットの形式が違うようなので,それの変換という意味と思えます. これは、TFINが MACRF=(GM)なのにTFOUTが MACRF=(PM)で、他はDCBの設定自体が同じことからの推測です。 MACRFの意味が見当つかないので、これ以上わかりませんが。

chau
質問者

補足

本当に何度も質問してすみません。 L 13,###@SV13 ** 13レジスタ←###@SV13の内容 ST 13,###@SV13 ** ###@SV13←13レジスタ と、何をやっているのか??です。 解説をお願いしたいです。 大変申し訳ありませんが、教えて戴きたいです。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.5

ymmasayanです。 一つ思い出しました。 BALRはCALL命令と等価というのは本当ですが、先頭部のはちょっと意味が違います。 BALR R3,0      0がダミーコールを示す。 USING *,R3,R4   ここがベースレジスタのスタートポイントという宣言。 LA R4,4095(R3) LA R4,1(R4) この4命令でベースレジスターのR3とR4をセットしています。 最初のBALRは ダミーCALLで、どこへも飛ばずに戻りアドレスをR3に取得する仕事だけをします。これが実は次のLA命令のアドレスです。 次に2つのLAでR4=R3+4095+1を計算しています。 R3とR4で8キロバイトのメモリがアクセスできる事になります。

chau
質問者

補足

本当に何度もすみません。 この GET TFIN,TW って、下に宣言している 領域(?)を TW に移していますよね。 でも、その下の L , ST 命令に TW が無く GET した情報をどうしているのか??です。 更に PUT も 何を PUT しているのか??です。 大変申し訳ありませんが、教えて下さい。お願いいたします

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.4

No.3のymmasayan です。補足にお答えします。 > B RDIN っていわゆる GO TO 文ですよね。 比較文等が無ければ、永久ループになると思うのですがそこら辺が??の状態です。 確かに永久ループに見えますね。 実は、GET文でEOF(End Of File)を検出すると自動的に EOFINに飛ぶと思います(多分)。 EODAD=EOFIN がその指定だと思います。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.3

1960年代の汎用機(IBM、富士通、日立・・・)のアセンブラーにそっくりです。今の汎用機もそれをほとんど継続しているはずです。 思い出す範囲で命令語の意味を書いてみます。 EQU equate  アドレス等置    (例)R4 EQU 4  R4と言うラベルは4番地・・・・R4と書くとアセンブラーが4と読み替える。ここでは LA R4,4095(R3)が好例。LA 4,4095(3) と同じ。 BALR R3,0 Branch and Link Register スタックがない当時のCALL命令。レジスタを2つ書く。飛び先と戻り先。   USING *,R3,R4   ベースRegisterを2個割り当てている。(擬似命令) L  ロード LA ロードアドレス ST  ストアー B RDIN 無条件分岐命令 RETURN (14,12),RC=0  リターン命令   LTORG  Literal Origin リテラルプールの先頭の宣言(擬似命令) OCSV1 DS 18F OCSV2 DS 18F ###@RSV DS 18F ###@SV13 DS F DS 0D      バウンダリー調整 ダブルワードに調整  > L 13,=A(###@RSV) リテラルプールに###@rsvのアドレスを作り、その中身(アドレス)をR13にロードします。 LA 13,###@rsv と同じですが、リテラルプールにアドレス定数が取られるか取られないかが違います。(使った理由はわかりません)   

chau
質問者

補足

すみません。更に教えて下さい。 B RDIN っていわゆる GO TO 文ですよね。 比較文等が無ければ、永久ループになると思うのですが そこら辺が??の状態です。 もしかして PUT文で自動的に EOFIN に飛ぶのでしょうか?? 申し訳ありませんが、教えていただきたいです。

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.2

多分,汎用機、メインフレームのアセンブラと思います。 昔,富士通の汎用機でプログラムしたことや、アセンブラを眺めたことがありますが、 それらしい記述があります。 また、当時使っていた富士通のはIBMの汎用機の互換機です。 特徴的なのは, >TFIN DCB DDNAME=TFIN, にある、DDNAMEとか、 ファイルの形式を示している、 >RECFM=FB, 固定長ブロック形式をあらわすFBとかですね。 後は忘れました(^^; ざっと見た感じでは,TFINから読み込んだ物をTFOUTに 単にコピーしているような感じです。 但し,ファイル形式は違うようですが。 # JCLもすっかり忘れたなぁ. アセンブラの命令自体は、8080なんかとそんなに違わないので意味は見当つきますね。 ただ、レジスタが数字で表現して、命令中の場所で判断しないといけないので読み辛いです. >ST 13,OCSV1+4 >LA 13,OCSV1 ストア、ロードで、13はレジスタ番号の13です。

chau
質問者

補足

ごめんなさい。 L 13,=A(###@RSV) って、13レジスタ ← ###@RSV って解りましたが、=A って何の意味があるか分かりますか?? 教えて下さい。お願いいたします。

回答No.1

詳しくないのでトッケンハッケンなこと書くかもしれませんが… シャープのポケコン「PC-1360」用のモノではないでしょうか? PC-1360用クロスアセンブラ「TNKASM」に、「EQU」という擬似命令があります。 TNKASMのオペコードは、SC61860(これもシャープのポケコン)機械語命令に擬似命令とマクロ命令を追加したもの、とあり、その擬似命令の一つが「EQU」でした。 「equ」ならX68000のアセンブラに出てくるのをwebで見たことがありますが。 #これ以外だとPICとかかなぁ

参考URL:
http://www.linkclub.or.jp/~watanu/paso/log/TNKASM/TNKASM.HTML

関連するQ&A

  • PICアセンブラのニーモニックオペランドで理解不能

    独学中の初心者です。初歩的な質問で恐縮ですが色々調べてもわからず、何日間も頭を悩ませています。どのアセンブラ解説書にも書いてあることですが、例えば、  RLF f,d について、結果を   d=0であれば、wレジスタに   d=1であれば、レジスタfに格納する   デフォルトはd=1 と解説してありますが、実際のプログラムでは  R1 EQU 0x34  RLF R1,F 等とあり、上記'R1,F'の'F'の値がプログラム中で定義されていません。 この'F'の値をどう考えればいのでしょうか。

  • ※モーメントのつり合いについてご教授お願いします。

    ※モーメントのつり合いについてご教授お願いします。 ・ある支点を境に片側に力F、片側に力Fa・Fbが作用している時、モーメントの釣り合いは   F×L=(Fa×La)+(Fb×Lb)   ここでL、La、Lbは個々の力の支点からの距離  また、支点の反力Rは  R=F+Fa+Fb    となりますが、Fa、Fb、R以外の数値は分かっているのですが、未知数が多く  Fa・Fbを解くことが出来ません。どの様に解けばよいのか、どなたかご教授  お願いいたします。

  • ・モーメントのつり合いについてご教授お願いします

    はじめまして。お世話になります。 ある機器の強度計算書を作成しているのですが、その中でモーメントの つい合いで不明点がでてしまいました。 <内容> ・ある支点を境に片側に力F、片側に力Fa・Fbが作用している時、  モーメントの釣り合いは   F×L=(Fa×La)+(Fb×Lb)   ここでL、La、Lbは個々の力の支点からの距離  また、支点の反力Rは  R=F+Fa+Fb    になると思いますが、Fa、Fb、R以外の数値は分かっているのですが、 どうしたらFa・Fbを解くことが出来るのか解かりません。  どなたかご教授お願いいたします。

  • ※モーメントの釣り合いについてご教授お願いします。

    ※モーメントの釣り合いについてご教授お願いします。 ・ある支点を境に片側に力F、片側に力Fa・Fbが作用している時、モーメントの釣り合いは   F×L=(Fa×La)+(Fb×Lb)   ここでL、La、Lbは個々の力の支点からの距離  となりますが、Fa・Fb以外の数値は分かっているのですが、未知数が2つあるために  Fa・Fbを解くことが出来ません。モーメントの釣り合いとは別に、FaとFbの間に何か関係式  があるのでしょうか?どなたかご教授お願いいたします。

  • エミネム

    8Mile の画像でリリックを手に書いている画像があるんですが左手に書いているのと右手に書いているのがあるんですけど  エミネムは左利きのはずなんですが しかもかいていいる歌詞が違うみたいなんですが どういうことですか? http://srd.yahoo.co.jp/IMG/r=1/ig=1024x768/id=fb151cee2c95e44c/l=ri/da=g/tid=MMSI02_03/q=8mile/SIG=13mbrlrcs/EXP=1199382860/*-http%3A//www.fabuloussavers.com/wallpapers/73_Eminem_8mile_movie_freecomputer_desktopwallpaper_l.jpg http://srd.yahoo.co.jp/IMG/r=11/ig=327x510/id=2beb5956af6a93f6/l=ri/da=g/tid=MMSI02_03/q=8%20mile%20/SIG=129i8fvmi/EXP=1199383065/*-http%3A//www.antoniogenna.net/doppiaggio/film/8mile.jpg

  • 式変換が分かりません。。。

    いつもお世話になります。 初心者が独学で数学勉強しています。 以下の式変換が示されたのですが、 どのように導かれたのか、私には分かりません。 導き方を教えて下さい。 よろしくお願いします。 dX/da = -(r + u(a))・X(a)・・・(あ) dN/da = -u(a)・N(a) N(a) = N(0)・L(a) L(a) = exp(-∫u(s)ds) ←積分は 0 からaまで。 とすると、(あ)は、 X(a)=N(0)・L(a)・exp(-ra) と変換できる、とあるのです。 なぜでしょうか。 変換過程はどうなっているのでしょうか。

  • フローチャート、教えて!

    このプログラムのフローチャートなんですけど・・・。 list P=PIC16F84A INCLUDE "P16F84A.INC" __CONFIG _HS_OSC&_WDT_OFF&_PWRTE_ON ; WCNT EQU 018H ; ORG 0 GOTO START ; ORG 05H ; START BSF STATUS,RP0 MOVLW 03H MOVWF TRISA BCF STATUS,RP0 ; st CALL SPEAKER goto st ; SPEAKER BCF PORTA,2 CALL WAIT2 BSF PORTA,2 CALL WAIT2 RETURN ; WAIT2 MOVLW D'249' ; MOVWF WCNT ; WAIT3 NOP ; NOP ; NOP ; NOP ; NOP ; NOP ; NOP ; DECFSZ WCNT,F ; GOTO WAIT3 ; RETURN ; ; WAIT4 NOP ; DECFSZ WCNT,F ; GOTO WAIT3 ; RETURN ; END ; ちょっと見難いですね、ごめんなさい;; このプログラムなんだけど、自分では良く分からなくて(@@; アセンブラ?だっけこれ、これでフローチャート作ったことないんだよね・・・。 簡単なフローチャート図なら作ったことあるけど、ほんと基本的な物だったからねぇ。 どうか、教えてください!

  • googleの使い方を教えてください

    技術者向け、コンピューター に、こんな名前の質問ですが、よろしくお願いします。 検索したいものは、以下のようなキーワードです。 「perl (?: 意味」 これをぐぐっても、満足な検索結果にはならないと思います。 http://www.google.co.jp/#sclient=psy-ab&hl=ja&source=hp&q=perl+(%3F:+%E6%84%8F%E5%91%B3&pbx=1&oq=perl+(%3F:+%E6%84%8F%E5%91%B3&aq=f&aqi=g-C1g-mC1&aql=&gs_sm=e&gs_upl=4782l9773l3l10463l20l11l9l0l0l1l170l1009l9.2l20l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=fb735010f96667fa&biw=853&bih=447 言い換えてしまえば、このような、記号を含むキーワードを正しく 認識させる検索の仕方を教えて下さい。 よろしくお願いします。

  • AVアンプ EA-5400DS SC-LX85

    AVアンプを使用しております。(SONY  DA-5400ES) システム内容は REX-Link2EX  ttp://abukuma.us/takuki/09/019.htm ※この商品すごく良い商品です 確かにノイズは入りますがかなり良いと思います・・。 FOCALの ディアブロユートピア センター サラウンド、サラウンドバックは全て は IMAGE11改 AIR BOW  (これは後日買い換えます 何が良いのかわからなくて・・) ウーファは イクリプスのタイムドメイン式の8万位のウーファです。 それにSONYのDA-5400ES ※これを LX85に変えて AIRPLAYにして 更に音質向上を狙ってます 更に その前に パワーアンプもしくはプレーヤーとして LINN DS-Iを追加したシステムです。 私は 5,1CH や 7,1CHで音楽も聞きたいのと 映画も見るのでどうしてもAVは必要です、 ただ、しかし、 フロントのスピーカのL&Rを FOCALの ディアブロユートピアに変えまして、素晴らしい音になり (スピーカの中に稲葉さんが一人づつ歌っていると思う位すごい!) 更に高みを目指したくなりました。 そこでパワーアンプORプリメインアンプの追加を考えております ためしにLINNのDS-Iを購入してみました。 しかし 音質が良くない・・ 今はREX-LINKという無線→光デジタル入力(AVアンプへ) からAVアンプに飛ばして スピーカから音を出してます。 ※ここをまず LX-85のAIRPLAYと、この評判の良いAVアンプへの変更でまず音質UPを狙ってます それをひとまずHDDから直接LANを通し→DS-I→スピーカと言う流れにすることで 音質の向上を狙いました  でも ぼやけた音しか出ません ???でした。 低音は良く出ますが、一切いじることもできず、 夜間は低音を消さないと迷惑がかかりますし 困ります 次にDS-Iは AVアンプの間に挟んで使う機能もあるので そのつなぎ方に変更しました。 単純にこれまでのシステムの間にDS-Iを挟めた形です(AVアンプからL&R)ではなく アナログRCAを介して DS-Iに通し、 DS-IからのフロントL&R出力 その場合少し音質は良くなったと思いますが 40万程の音質UPはしてないと思います。 なのでDS-Iに変わる良い品を 購入したいと思ってます。 調べていて疑問点が出てきました。 DA-5400ES には LR(フロントメインスピーカ)のプリアウトがあるのですがアナログです DS-Iも光入力はありますが アナログでつなぐようになっているようです これはどうしてでしょうか? 出来る限り デジタル伝送した方が良いに決まっていると思うのですが・・ そしてAVアンプを SC-LX85に変更するつもりですが これも光デジタルで L&Rの出力はないのかな? やりたいことはとにかく AVアンプを使いながら フロントのL&Rだけでも 他のアンプの力を借りて音質を上げたいって ことです。 現状 DA5400ES駆動ですと低音がしっかり出ません。 アキュフェーズや ONKYO なんかが良いとみたんですが どうでしょう? EA550 PM-11S2  などです しかし A級アンプのようです  AB級アンプの方が音はよいはずなのに・・(調べた限りでは) お勧めの品や、色々教えていただきたく思い質問致しました

  • ブロムウィッチ積分L-1[exp(-a√s)]

    F(s)=exp(-a√s) の逆ラプラス変換をブロムウィッチ積分 f(t)=L^(-1)F(s)={1/(2πi)}∫[c-ip→c+ip]F(s)e^(st)ds (t>0) を用いて解く問題が分かりません。 多価関数なのでs=∞の分岐点のみ持つとしてよいのでしょうか。 その場合、積分路の取り方と、計算方法をご教示頂けると助かります。

専門家に質問してみよう