03.アセンブラーの使い方とアセンブリー・リストの見方
下記のサンプル・ソースコードをアセンブルした際のアセンブリー・リストに、簡単な見方を示した資料を作りました。アセンブラー・プログラムは他の言語と違って、区分データセットに格納したソース・コードのメンバー内容だけを見てもデ …
こんな時代に今さらメインフレーム・コンピューターに取り組むハメになった人々のためのセルフスタディ・サイトです。Copyright © 2008-2024 ARTECEED Co.,Ltd.
下記のサンプル・ソースコードをアセンブルした際のアセンブリー・リストに、簡単な見方を示した資料を作りました。アセンブラー・プログラムは他の言語と違って、区分データセットに格納したソース・コードのメンバー内容だけを見てもデ …
これからメインフレーム・コンピューターのアセンブラー・プログラミングを覚えようとする方向けに、基本的な命令の動きやレジスターに読み込んだ内容やメモリーに書き込んだ内容を簡単に見るためのひな型プログラムを用意しました。JC …
TSOには、TESTコマンドというMVSが標準で提供するコマンド・ベースの対話型デバッガーがあります(*1)。MVSでは、バッチ処理プログラムであってもそのままTSOで実行することができます。プログラムの実行中は端末から …
プログラムの書式 アセンブラー・プログラムは1行が80バイトです。LRECL=80の固定長レコードのデータセットを作成してそこへ書いていきます。区分データセットのメンバーとして登録するのが普通ですが、ちょっとしたプログラ …
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- R0 EQU 0 R1 EQU 1 R2 EQU 2 : R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 RA EQU A RA = R10 RB EQU B RB = R11 RC EQU C RC = R12 RD EQU D RD = R13 RE EQU E RE = R14 RF EQU F RF = R15 GR0 EQU 0 GENERAL PURPOSE REGISTER AR0 EQU 0 ACCESS REGISTER FPR0 EQU 0 FLOATING POINT REGISTER RBASE EQU 12 1ST BASE REGISTER RSAVEA EQU 13 SAVEAREA REGISTER |
多くのプログラマーは、機械(CPU)命令のオペランドで指定するレジスター番号を単なる10進数ではなく Rn のようなシンボル名で指定します。これは、即値と …
CPU命令だけを使っていても、あまり面白くないし実用的ではありません。「S370アセンブラー講座」の最後に「アセンブラーではI/Oをどうやって処理するのだろう?」と言うことに触れて一連の解説を終えます。誰かに呼ばれるだけ …
CPU命令の解説の最後はビット操作と論理演算(AND、OR、XOR)です。ビット操作は、とてもアセンブラーっぽいプログラミング技法です。1バイトあれば8つの情報を持てますし、使いこなせるとプログラムはとてもスマートになり …
分岐とループは、実用的なプログラムを作る上での基本でもあります。関連する機能でもある比較と併せてS/370アーキテクチャーにおける、分岐・ループ、サブルーチンの呼び出しなどについて解説します。基本の分岐命令(BC命令)に …
S/370アーキテクチャーではバイト(8ビット)が情報の基本単位です。EBCDICコードもそうですが、1文字は1バイトで示されます。事務処理や制御系のプログラムでは四則演算よりも文字や文字列の取り扱いの方が多いでしょう。 …
四則演算はS/370命令セット内に於ける最も基本的な命令群の1つです。ハーフワード(半語:2バイト)とフルワード(全語:4バイト)の2種類の整数値を取り扱うことができます。ただし、乗除算だけは少し複雑です。また、演算命令 …