DosPrompt>hl9 HL9>casm 1 HL9>pr 0:<10 LdImm32(R01, 0); CmpJmpGrtEquImm32(R01, 10, 2); Label(3); ApiPrIntReg32(R01); Label(4); AddShtImm32(R01, 1); CmpJmpLesThnImm32(R01, 10, 3); Label(2); End(); HL9>
DosPrompt>gcc -m32 -O3 -DAArch_X86 -DAGraph_Win -Iacl1/ -include casm32.c -o t0004.exe t0004.c -lgdi32 -lwinmm DosPrompt>t0004 0123456789 DosPrompt>
HL9>casm 1
HL9>AWin *w = aOpenWin(256, 256, "gradation"); c=0; [y=0:<256] { [x=0:<256] { aSetPix(w, x, y, c); c += 256; }}
LdPtrImm(P02, "gradation");
LdImm32(R00, 256)
LdImm32(R01, 256)
ApiOpenWinReg32(P03, R01, R00, P02);
CpyPtr(P04, P03);
LdImm32(R02, 0);
LdImm32(R03, 0);
CmpJmpGrtEquImm32(R03, 256, 2);
Label(3);
LdImm32(R04, 0);
CmpJmpGrtEquImm32(R04, 256, 4);
Label(5);
ApiSetPix32(P04, R04, R03, R02);
AddLngImm32(R02, R02, 256);
Label(6);
AddShtImm32(R04, 1);
CmpJmpLesThnImm32(R04, 256, 5);
Label(4);
Label(7);
AddShtImm32(R03, 1);
CmpJmpLesThnImm32(R03, 256, 3);
Label(2);
End();| 0 | nop | |
| 1 | LB | 連番用 |
| 4-1 | LB i | 連番以外も可 |
| 2 | LIMM/CP src,reg | {0,1,2,3,4,rep0,-1} |
| 3 | JMP lb | |
| 4-3 | PLIMM lb,preg | |
| 4-4 | CND reg | 条件実行プリフィクス |
| 5 | API | |
| 4-5 | API | |
| 6 | loop v1,reg | |
| 4-6 | loop v0,v1,reg | |
| 7 | endloop | |
| 8 | LMEM ? | |
| 9 | SMEM ? | |
| 10 | OR2 | |
| 11 | XOR2 | |
| 12 | AND2 | |
| 13 | SBX2 | |
| 14 | ADD2 | |
| 15 | SUB2 | |
| 16 | MUL2 | |
| 17 | SBR2 | |
| 18 | SHL2 | |
| 19 | SAR2 | |
| 1a | DIV2 | |
| 1b | MOD2 | |
| 1e | PCP | |
| 20 | CMP | |
| 21 | CMP | |
| 22 | CMP | |
| 23 | CMP | |
| 24 | CMP | |
| 25 | CMP | |
| 26 | DIV3 | |
| 27 | MOD3 | |
| 28 | OR3 | |
| 29 | XOR3 | |
| 2a | AND3 | |
| 2b | SBX3 | |
| 2c | SHL2 | |
| 2d | SAR2 | |
| 2e |
{ R1, 16, 1, 2, 8, 4, R0 }, // OR
{ -1, R1, 1, 2, 3, 4, R0 }, // XOR
{ R1, 15, 1, 7, 3, 5, R0 }, // AND
{ 64, 16, 1, 2, 8, 4, 32 }, // SBX
{ -1, R1, 1, 2, 3, 4, R0 }, // ADD
{ R1, R0, 1, 2, 3, 4, 5 }, // SUB
{ 10, R0, R1, 7, 3, 6, 5 }, // MUL
{ -1, 0, 1, 2, 3, 4, R0 }, // SBR
{ R1, R0, 1, 2, 3, 4, 5 }, // SHL
{ R1, R0, 1, 2, 3, 4, 5 }, // SAR
{ 10, R0, R1, 7, 3, 6, 5 }, // DIV
{ 10, R0, R1, 7, 3, 6, 5 }, // MOD| 80~96 | 0~16 |
| 97~9f | 20, 18, 40, 80, 100, ff, 7f, 3f, 1f |
| a0~ae | R00~R0e |
| af | R3f |
| b0~b7 | rep0~rep7 |
| b8~bf | -8~-1 |
| c00~cee | 0~ee |
| cef~cf7 | 200, f0, 400, 800, 1000, 2000, 4000, 8000, 10000 |
| cf8~cff | ffff, 7fff, 3fff, 1fff, fff, 7ff, 3ff, 1ff |
| d00~d3f | R00~R3f |
| d40~d4f | reserved |
| d50~d56 | reserved |
| d57 | reserved |
| d58~d5f | reserved |
| d60~d6f | (この項10進数)128K,256K,512K,...,4G |
| d90~dff | -70~-1 |
(1) → NO1: (2) → NO2: (3) → NO3: Kをかく(すきまあり) → PRIS K; Kを1ふやす → K=K+1; (1)へもどる → GO NO1;
(1) K=1; (2) Kをかく(すきまあり) (3) Kを1ふやす (4) (2)へもどる