2023-01-01から1年間の記事一覧

原子で成り立っている宇宙

この宇宙は、縦横垂直に原子が無数に並んでいることで成り立っている。 原子はこんな感じに並ぶ。HHONCOBFSCOOCOPS Hは水素、Oは酸素、Nは窒素、Cは炭素、Bはホウ素、Fはフッ素、Sは硫黄、Pはリン。 原子が隣の原子と位置を入れ替える(パズ…

コンピュータの小数

・固定小数点数 固定小数点数とは、コンピュータにて整数部のビット列と小数部のビット列とで表された数である。ただし表せる数は分母が2の累乗のものに限る。3は分数の形では3/(2^0)と表せるので分母が2の累乗であり、0.75は分数で3/(2^2)と表せるので分母…

コンピュータでの減算

コンピュータは減算ができないので、A-BはA+(-B)に変換して計算する。例えば7-2はコンピュータは7+(-2)として計算する。 コンピュータは、全ビットを反転して1を足す(2の補数にする)ことで正の数を負の数にする。例えば、コンピュータは3(ビット列は00000011…

オペレーティングシステムの正しい解釈

オペレーティングシステム(縮めてOS)は、仮想的ではなく物理的なコンピュータを操作させるもの。物理的なコンピュータに取り付けられ、そのコンピュータのプログラムの読み取り・書き換え・実行などを行う。 OSにより使用者は実行するプログラムを選べ、その…

8つの汎用レジスタを汎用レジスタとして扱ったアセンブリ言語プログラム

ahレジスタ、alレジスタ、bhレジスタ、blレジスタ、chレジスタ、clレジスタ、dhレジスタ、dlレジスタの8つの汎用レジスタがある。 それらは、"int 21h"という命令やloop命令の材料として用いられるため汎用レジスタでないと思われがち。 そんな8つの汎用レジ…

アセンブリ言語におけるプログラム終了シーケンス

このアセンブリ言語プログラム。 bits 16org 0x100 mov ah,2mov dl,'s'int 21h ;プログラム終了シーケンスmov ah,4Chmov al,0int 21h プログラム終了シーケンスにおいて、"int 21h"はah内の数値に応じた処理をする命令であり、ah内の数値が4Chなのでプログラ…

アセンブリ言語のcmp命令

アセンブリ言語のcmp命令は、次の命令とセットになってある場所にジャンプするものと思ってないか。 例えば、 cmp dl,dh je yes は、"cmp dl,dh"は次の"je yes"とセットになって「dlの数値とdhの数値が同じであればyesという所にジャンプする」命令と思って…

割り算の答えを帯分数で表すアセンブリ言語プログラム

bits 16org 0x100 mov ah,08hint 21hmov cl,al mov ah,02mov dl,clint 21h mov ah,02mov dl,'/'int 21h mov ah,08hint 21hmov ch,al mov ah,02mov dl,chint 21h push cxsub cx,3030h mov ax,0mov al,clmov cl,chmov ch,0div cl mov cx,axmov ax,0 cmp ch,0jn…

文字列表示アセンブリ言語プログラムの各バイト

bits 16org 0x100 mov ah,9mov dx,msgint 21h mov ah,4Chmov al,0int 21h msg db "Hello.$" この「アセンブラー ソース」をアセンブルしたやつの各バイトがこれ。

某フリー画像をアプリにすると?

このフリー画像を「BINファイル」にして逆アセンブルしたやつの一部がこれ(全部だとすごく長いから)。 000770C0 0821 or [bx+di],ah000770C2 8410 test [bx+si],dl000770C4 42 inc dx000770C5 0821 or [bx+di],ah000770C7 8410 test [bx+si],dl000770C9 42 i…

素数判定プログラムのアセンブリ言語コード

bits 16org 100h mov ah,0ahmov dx,bufmov byte [buf],20hint 21h mov dx,crlfmov ah,09hint 21h mov dl,[buf+1]cmp dl,1hje one_digitcmp dl,2hje two_digits jmp exit one_digit:mov dl,[buf+2]sub dl,30hjmp prime_judge two_digits:mov ax,[buf+2]sub ax…

擬似命令dbにより文字列のデータが存在するアセンブリ言語プログラムを逆アセンブルすると?

bits 16org 0x100 mov ah,9mov dx,msgint 21h mov ah,4Chmov al,0int 21h msg db "Hello.$" これをアセンブルしたやつを逆アセンブルすると、 00000000 B409 mov ah,0x900000002 BA0D01 mov dx,0x10d00000005 CD21 int 0x2100000007 B44C mov ah,0x4c0000000…

奇妙なアセンブル

Hello.I'm fine, thank you.And you? というテキストをBINファイルにして逆アセンブルすると、 dec axgs insbinsboutswcs or ax,0x490adaainswand [bp+0x69],ahoutsbgs sub al,0x20jz 0x7cpopaoutsbimul sp,[bx+si],byte +0x79outswjnz 0x4aor ax,0x410aouts…