C++版MessagePackを入れる使うために必要なmemsetをnasmで実装してみた。STOSB使ってるが、これのループ版とかないのだろうか?
memset: _memset: ;ディレクションフラグクリア CLD ;引数 MOV EDI, [ESP + 4] MOV EAX, [ESP + 8] MOV ECX, [ESP + 12] ;返り値退避用 MOV ESI, EDI ;値をセットするループ set_loop: ;ECXが0ならループ終了 OR ECX, ECX JZ set_end ;ALの値を[ES:EDI]に入れて、ECXの値を1下げてループへ STOSB SUB ECX, 1 JMP set_loop set_end: ;返り値をEAXに設定 MOV EAX, ESI RET