* kharc #02
-(by [[K]], 2025.07.11)
** (0) これはなに?
-kharcでいろいろやってみるページ
** 2025.07.11 Fri #0
-hh4のおさらい:
|RIGHT:0-6|RIGHT:0-6|RIGHT:-3-+3|RIGHT:0.5バイト(3)||
|RIGHT:80-bf|RIGHT:0-63|RIGHT:-32-+31|RIGHT:1.0バイト(6)||
|RIGHT:c00-dff|RIGHT:0-511|RIGHT:-256-+255|RIGHT:1.5バイト(9)||
|RIGHT:exxx|RIGHT:0-4095|RIGHT:-2048-+2047|RIGHT:2.0バイト(12)||
|RIGHT:70xxxx|||RIGHT:3.0バイト(16)|これ以降はオリジナルから改変している|
|RIGHT:71xxxxx|||RIGHT:3.5バイト(20)||
|RIGHT:72xxxxxx|||RIGHT:4.0バイト(24)||
|RIGHT:73xxxxxxx|||RIGHT:4.5バイト(28)||
|RIGHT:74xxxxxxxx|||RIGHT:5.0バイト(32)||
|RIGHT:75xxxxxxxxx|||RIGHT:5.5バイト(36)||
|RIGHT:76xxxxxxxxxx|||RIGHT:6.0バイト(40)||
|RIGHT:787xxxxxxxxxxx|||RIGHT:7.0バイト(44)||
|RIGHT:788xxxxxxxxxxxx|||RIGHT:7.5バイト(48)||
-命令セット:
|0|代入|
|1|+=|
|2|ラベル宣言|
|3|api|
|4|for {|
|5|}|
|6|if !=0 goto|
|87|-=|
|88|if == {|
|89|if != {|
|8a|if < {|
|8b|if >= {|
|8c|if <= {|
|8d|if > {|
|8e-93|if cc goto|
-演算子もしくは数値:
|0|const0|
|1|rep0|
|2|rep1|
|3|rep2|
|4|+(2項)|
|5|-(2項)|
|6|*(2項)|
|80-9f|定数0~23, 24, 32, 64, 128, 256, 512, 1024, 31|
|a0~af|変数0~15|
|b0|/|
|b1|%|
|b2|<<|
|b3|>>|
|b4|bit.or|
|b5|bit.xor|
|b6|bit.and|
|bc-bf|-4~-1|
|c00-cff|0-255|
|d00-d3f|変数0-63|
|d40-d4f|2K, 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K, 1M, 2M, 4M, 8M, 16M, 32M, 64M|
|d50-d5f|128M, 256M, 512M, 1G, 511, 1023, 2K-1, 4K-1, ...|
|d80-dbf|演算子|
|dc0-dff|-64~-1|
-hh4の拡張:
--77-(a)-(b)-(c): // c/2がシフト量.
|RIGHT:77-0-1234-6|(0x1234*2+1)<<3|
|RIGHT:77-0-1234-89|((0x1234*2)<<4)+(1<<4)-1|
--7f-(b)-(c):
|RIGHT:7f-1-6|(1*2+1<<3)=24|
|RIGHT:7f-5-5|((5*2)<<2)+3=43|
|RIGHT:7f-5-b0|(5*2+1)<<24=0xb00_0000|
|RIGHT:7f-e23a-98|0x475000|
--これでもまだ 777/77fや7f7/7ffなどの拡張余地はある。