ぐだぐだ低レベルプログラミング(184)x86(16bit)、シフト、ローテイト(86のね)

x86SFTROTfuncs
Joseph Halfmoon

前回は、MUL(掛け算)命令。今回はレジスタやメモリの中のビットをシフトしたりローテイトしたりする命令について調査。全8種類(実際は7種類)もあり。「フツーの」RISCはこの系統の命令種類をこれほどもってません。それにキャリーフラグが影響うけること多いなど動作もクセ強。御先祖の8ビットの血統を色濃く受け継いでおると。
“ぐだぐだ低レベルプログラミング(184)x86(16bit)、シフト、ローテイト(86のね)” の続きを読む

Pico三昧(27) ラズパイPico2:RP2350、Pico:RP2040との仕様比較3

ProcessorSubsystem
Joseph Halfmoon

前回までに、ラズパイPico2搭載のRP2350とPico搭載のRP2040の電源、クロックなどの比較を行いました。いよいよチップの内部です。最初は「プロセッサ・サブシステム」部分。PicoのRP2040はデュアルArmコア、RP2350ではデュアルArm+デュアルRISC-Vだと。でも実は構造、かなり似てました。
“Pico三昧(27) ラズパイPico2:RP2350、Pico:RP2040との仕様比較3” の続きを読む

Pico三昧(26) ラズパイPico2:RP2350、Pico:RP2040との仕様比較2

PicoPico2Table2
Joseph Halfmoon

前回はラズパイPico2搭載のRP2350とPico搭載のRP2040の電源、クロック端子などを中心に比較してみました。今回は残りの端子を比べてみます。しかし調べているうちにRP2354なる型番のチップも存在(現物を見たわけでないけれども)することが分かりました。パッケージ内部にFlashをスタックした版みたい。

“Pico三昧(26) ラズパイPico2:RP2350、Pico:RP2040との仕様比較2” の続きを読む

Pico三昧(25) ラズパイPico2:RP2350、Pico:RP2040との仕様比較1

PicoPico2Table1u
Joseph Halfmoon

過去回(第21回)でラズパイPico2搭載のRP2350マイクロコントローラのデータシート、PicoのときのRP2040のそれに比べて2倍以上のページ数(1346p)があると愕然としました。愕然としてばかりもいられないので、少しづつ読み進めていきたいと思います。RP2040と比べながらね。今回は電源、クロック端子など。

“Pico三昧(25) ラズパイPico2:RP2350、Pico:RP2040との仕様比較1” の続きを読む

Pico三昧(24) ラズパイPico2、MicroPythonで吉例Lチカ

Pico2MicroPython
Joseph Halfmoon

前々回はC/C++ SDK、前回はArduino IDEを使いラズパイPico2上で吉例Lチカ。今回はMicroPythonです。Pico2用のバイナリ(まだPreview版ですが)が既にMicroPythonの公式で公開されてます。書き込めば動きます。Pico用のMicroPythonソースそのままで吉例LチカOK。

“Pico三昧(24) ラズパイPico2、MicroPythonで吉例Lチカ” の続きを読む

ソフトな忘却力(65) FreeDOS、OpenWatcom FORTRAN、77だぜ。

hellof77src
Joseph Halfmoon

前回までTurbo Pascalの系譜を現代に継ぐ?Free Pascalを触ってきました。今回からは「大文字で綴らないといられない」FORTRANです。近代的なFortranではなく固定フォーマットの77ね。「灰の中から不死鳥のごとく蘇った」らしいOpenWatcomの逸品。とりあえずHello Worldからだな。

“ソフトな忘却力(65) FreeDOS、OpenWatcom FORTRAN、77だぜ。” の続きを読む

ぐだぐだ低レベルプログラミング(183)x86(16bit)、MULのオペランドは1個?

MULreg
Joseph Halfmoon

前回はADD、SUBなどの算術演算命令、AND、ORなどの論理演算命令8種が「ほぼほぼ」以下同文ということを確認しました。でも算術演算といえば加減乗除というくらいで、乗除はどうなってんの?そこで今回は乗算命令MULを見ていきます。「何かと何かを掛ける」命令のハズなのに、アセンブラのオペランドは1個だけ。なして?

“ぐだぐだ低レベルプログラミング(183)x86(16bit)、MULのオペランドは1個?” の続きを読む

Pico三昧(23) Raspberry Pico 2、Arduino IDEで吉例Lチカ

ArduinoBoard2
Joseph Halfmoon

前回はラズパイ財団のC/C++ SDKを使ってPico2上での吉例Lチカ実施。ついてはSDKのバージョンアップが必要でした。今回はArduino IDEにてPico2の吉例Lチカを実施。Winddows11機上にインストールしてあるArduino IDE 2.3.2利用デス。ここでもボードマネージャの更新必要でした。

“Pico三昧(23) Raspberry Pico 2、Arduino IDEで吉例Lチカ” の続きを読む

Pico三昧(22) Raspberry Pico 2、C/C++ SDKで吉例Lチカ

Pico2_Blink
Joseph Halfmoon

前回、Raspberry Pi Pico 2を受領したのに、一時寝かせてしまいました。老眼の目にはピンヘッダのハンダ付けが辛い、さらにPico 2用にソフトウエアのアップデートがメンドクセーです。まあ、折角手に入れたボードに火も入れずに打っちゃっておくのも気が咎めるので、なんとか吉例Lチカやってみましたぞ。

“Pico三昧(22) Raspberry Pico 2、C/C++ SDKで吉例Lチカ” の続きを読む

Pico三昧(21) Raspberry Pico 2 着弾、Arm M33とRISC-V

Pico2
Joseph Halfmoon

久しぶりにラズパイPicoです。辺境の老人のもとにも「Pico 2」やってまいりました。文明開化。前のPicoに搭載されていたRP2040は、デュアルコアのArmを搭載してましたが、コアはお手頃なやつでした。しかし今回Pico 2は、デュアルArm M33だけではなく、デュアルRISC-Vも搭載とな。どうなってるんだ?
“Pico三昧(21) Raspberry Pico 2 着弾、Arm M33とRISC-V” の続きを読む

ぐだぐだ低レベルプログラミング(182)x86(16bit)、ADD以下同文?微妙に非対称?

8086ADCopcode
Joseph Halfmoon

前回、x86の16ビット命令セットからADD命令を練習。実はADDが分かれば、ADC、AND、XOR、OR、SBB、SUB、CMPの残り7命令も「ほぼほぼ以下同文」てことで理解できます。でも「ほぼほぼ」って何だ?そこで、この辺でCISCらしいx86のオペコードエンコーディングを復習。ほんとメンドクセーんだが、これ。 “ぐだぐだ低レベルプログラミング(182)x86(16bit)、ADD以下同文?微妙に非対称?” の続きを読む

ソフトな忘却力(60) FreeDOS、FreePASCAL、GDBでデバッグ

gdbVersion
Joseph Halfmoon

前回FreeDOS上にFreePASCALコンパイラをインストール、吉例Hello worldできました。今回はFreePASCALで生成したオブジェクトプログラムのデバッグを実施。使用するのはみんな大好きGDBです。FreeDOS上にインストールしたFreePASCAL処理系には主だったGNUのツール共が同梱。

“ソフトな忘却力(60) FreeDOS、FreePASCAL、GDBでデバッグ” の続きを読む

ソフトな忘却力(57) FreeDOS、WSL2上のUbuntuでのキー入力あれこれ

ERROR_k_curses
Joseph Halfmoon

前回、Raspberry Pi OS上でQEMUを実行しているのと同じ方法でWSL2上のUbuntu上のQEMUでもFreeDOS動くだろ~と甘い見通しで作業開始。FreeDOS、動きはするけれどもいろいろビミョ~。その後、あれこれ設定を確かめていって、まあ、こんなもんかいという線に近付きつつある?ので中間報告?

“ソフトな忘却力(57) FreeDOS、WSL2上のUbuntuでのキー入力あれこれ” の続きを読む

ぐだぐだ低レベルプログラミング(181)x86(16bit)、ADDオペランド何でもありすぎ

ADDregs
Joseph Halfmoon

前回から元祖x86、16bitCPU、8086/8088の命令セットの復習を始めました。うん十年ぶり。忘れてます。しかしArmとかRISC-Vとかの後に改めて8086の命令をみると確かに複雑、CISCだからあたりまえか。今回は整数足し算、ADD命令を練習してみます。命令にとれるオペランドがいろいろありすぎ、何でもあり?

“ぐだぐだ低レベルプログラミング(181)x86(16bit)、ADDオペランド何でもありすぎ” の続きを読む