Z80アセンブリ言語で1バイトの数値の二乗を計算する

ここでは、「 Z80アセンブリ言語で1バイトの数値の二乗を計算する」 に関する記事を紹介しています。
Z80アセンブリ言語で1バイト数値の二乗を求めるプログラムです。
ただし、Z80でプログラムを組んでいたのが15年近く前の話なので、
レジスタの指定が間違っているかもしれません。
雰囲気だけつかんでいただければ幸いです。

NIJOU:	LD	H,0
LD L,11 ;求める数値をLレジスタに代入
ADD HL,HL
SWAP HL,DE
LD HL,DATA
ADD HL,DE
LD C,(HL)
LD DE,1
ADD HL,DE
LD B,(HL) ;BCレジスタに二乗の数値がセットされる。

DATA: DW 0,1,4,9,16,25,
DW ・・・・・;0から255(FFH)までの二乗を計算した値が延々と続く。
DW ・・・・・
DW 63504,64009,64516,65025

以前の記事で、配列で二桁の数値の二乗を計算する方法を紹介しましたが、
内部的には上記のようなコードで計算されています。

つまり、Lレジスタの値が何であっても、計算速度は変わりません。
しかし、Lレジスタの値をループで足し算をして二乗の値を求めると、
Lレジスタの値が大きくなると計算速度が遅くなります。

昔のコンピューターはCPUの速度が遅かったので、こんな風にして少しでも実行速度が速くなるように
プログラマーが努力していました。

- 追伸 -
MC68000で同じプログラムを書こうとしましたが、すっかり忘れてしまいました・・
- おすすめレンタルサーバー -

充実のセキュリティー・安心のサポートのLHX
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://konohaotoshi.blog69.fc2.com/tb.php/214-9d28430b
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック