kharcs #1

(0) これはなに?

(1)

(2)

MovRI(r,imm);R0~R7に即値定数immを代入、Rx=imm;
MovAI(a,imm);A0~A7に即値定数immを代入、Ax=imm;
LodRMd(r,base,disp);Rxの値をメモリから読み込みます(load)、base=ベースレジスタAx, disp=即値ディスプレイスメント、Rx=[Ax+disp];
StoRMd(r,base,disp);Rxの値をメモリに書き込みます(store)、[Ax+disp]=Rx;
LodAMd(a,base,disp);Ax=[Ax+disp];
StoAMd(a,base,disp);[Ax+disp]=Ax;
AddRI(r,imm);Rxに即値定数immを加算、Rx+=imm;
AddAI(a,imm);Ax+=imm;
AddRR(r0,r1);r0+=r1;
SubRI(r,imm);Rx-=imm;
SubAI(a,imm);Ax-=imm;
SubRR(r0,r1);r0-=r1;
CmpJleRII(r,imm,lab);Rxを即値定数immと比較して結果に応じてラベル番号labにジャンプする、if(Rx<=imm)goto lab;
CmpJccRII(r,imm,lab);他にもJe/Jne/Jl/Jge/Jgがあるが、書くのが面倒なので省略
LbI(lab);ラベル宣言、JmpやCalの飛び先指定に使用
JmpI(lab);無条件分岐、goto lab;
JmpA(a);無条件分岐、goto Ax;
CalII(lab,tmp);サブルーチンのCALL命令、tmpは内部処理用のラベル番号(欄外に補足説明あり)、call lab;
Ret();サブルーチンからのリターン、return;

(3)

(4)

(5)

(6) 補足


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS