NLP-16Aオンラインアセンブラ

2024/12/06 NLP-16A専用のオンラインアセンブラになりました。NLP-16A基板セットをご購入の方はgithubにあるアセンブラかこちらでアセンブルしてください。

アセンブル結果


オプション

エディタ

;サンプルのコード ;円周率を150桁計算できる ;以下のページの移植:「自作TTLコンピュータで円周率を計算する」がたろう ;http://diode.matrix.jp/SOFT/R8/PAI_1.htm INIT: MOV D, 0x00 INIT_L: CMP D, 0x200 ;MAXARRAY JMP.ns IP+@MAIN MOV A, 0x02 STORE A, 0x9000+D INC D,D JMP IP+@INIT_L MAIN: MOV D,0x1FF ;MAXARRAY-1 MAIN_L1: CMP ZR, D JMP.ns IP+@OUTPUT ; C=0 MOV C, 0x00 SUB B, D-0x01 CALL IP+@MAIN_L2 STORE C, 0x95FF-D ;MAXARRAY-D-1 ;MOV A, C ;CALL 0x19 ; --D DEC D, D JMP IP+@MAIN_L1 MAIN_L2: CMP ZR, B RET.ns ;C = C * B + nom[B] * 10; ; = C * B; ; +=nom[B] * 10; ; nom[B] = C % (2*B-1); ;A = C * B; CALL IP+@MUL ;C = A MOV C, A ;A +=nom[B] * 10; PUSH B PUSH C LOAD B, 0x9000+B MOV C, 0x0A CALL IP+@MUL POP C POP B ;C = C+A ADD C, C, A ;nom[B] = C % (2*B-1); PUSH B PUSH C ;B = 2*B-1 SLL B, B DEC B, B ;B = C % B; XOR B, B, C XOR C, B, C XOR B, B, C CALL IP+@DIV ;nom[B] = POP C POP A STORE B, 0x9000+A MOV B, A ;C = C / (2*B-1); PUSH B ;B = 2*B-1 SLL B, B DEC B, B ;A = C / B; XOR B, B, C XOR C, B, C XOR B, B, C CALL IP+@DIV MOV C, A POP B DEC B,B JMP IP+@MAIN_L2 OUTPUT: MOV B,0x200 ;MAXARRAY OUTPUT_L1: DEC B,B CMP ZR, B JMP.ns IP+@OUTPUT_L2 LOAD C, 0x9400+B CMP C, 0x0A JMP.s IP+@OUTPUT_L1 SUB C, C,0x0A STORE C, 0x9400+B LOAD C, 0x93FF+B INC C,C STORE C, 0x93FF+B JMP IP+@OUTPUT_L1 OUTPUT_L2: CMP B,0x200 ;MAXARRAY RET.ns LOAD C, 0x9400+B ADD A, C,0x30 CALL 0x11 INC B, B PUSH B MOV C, 0x0A CALL IP+@DIV MOV C, B POP B CMP C,0x00 JMP.nz IP+@OUTPUT_L2 MOV A, 0x20 CALL 0x11 PUSH B MOV C, 0x14 CALL IP+@DIV MOV C, B POP B CMP C,0x00 JMP.nz IP+@OUTPUT_L2 MOV A, 0x0D CALL 0x11 MOV A, 0x0A CALL 0x11 JMP IP+@OUTPUT_L2 MUL: PUSH B PUSH C PUSH D ;結果格納の初期化 MOV A,0x00 ;カウントの初期化 MOV D, 0x00 MULmain: CMP D, 0x0F JMP.ns IP+@MULend AND ZR, C, 0x01 ADD.nz A, A, B SLL B, B SLR C, C INC D, D JMP IP+@MULmain MULend: POP D POP C POP B RET DIV: PUSH C PUSH D MOV D, C DIV_L1: SLL C, C JMP.ns IP+@DIV_L1 MOV A, 0x00 DIVloop: CMP C, D JMP.z IP+@DIVend SLL A, A SLR C, C CMP B, C ;JMP.s IP+@DIVloop JMP.c IP+@DIVloop OR A, A, 0x0001 SUB B, B, C JMP IP+@DIVloop DIVend: POP D POP C RET

コメント欄

レス番:103 | 管理人ちぇりー
user:APL1r9C7rDnJ 2024/12/06 01:08:51.068578
article[nlpasm]
WAFに引っ掛からないようにして,長いコードとかでもアセンブルできるようになりました。
一応現時点で最新バージョンのアセンブラを動かしています。
GitHubに上がってるサンプルコードは全部アセンブル可能

レス番:93 | 管理人ちぇりー
user:e_9aGrT4Frdi 2023/11/23 00:15:08.085676
article[nlpasm]
長いコードをアップロードするとWAFに引っ掛かるので注意
参考→(挿入URL 1)

----挿入URL一覧----
URL[1]-外部のサイト->https://rs.sakura.ad.jp/function/waf/
レス番:88 | 管理人ちぇりー
user:T@+4@8#MBJ9n 2023/09/12 03:50:59.533963
article[nlpasm]
不具合あったら教えてください.
アセンブルした結果のバイナリは後でダウンロードできるようにしておきます.

投稿をすべて見る

最新の投稿を見る

投稿をすべて見る

投稿する場所
名前
メール
削除キー
添付画像(1投稿1枚10MBまで)
↓チェックを入れてからボタンを押してね!!認証エラーになるよ!!
なんかアドブロック使ってるとダメらしい...すみません
削除する場所
削除する投稿ID
削除キー
↓チェックを入れてからボタンを押してね!!認証エラーになるよ!!
なんかアドブロック使ってるとダメらしい...すみません
今日累計
キリ番踏み逃げ禁止!!
RSSフィードはじめました.詳細RSS