私のプログラマーは、バイナリをベース64にエンコードすることになっています。 すべてはEOFまでうまく動作します。私は出力文字列の最後に '='を追加するのに苦労します。Nasm Linux x64-86 |正しいbase64エンコーディングのためにファイルの最後にビットを追加してください
これは、最後のバイトが読み取られている場合にのみ発生します。それは空の空間を埋めるはずです。ここでは、1つまたは2つの '='を追加する必要があるたびに、私のコードを検出します。私の中のSO
Read:
mov eax,3 ; Specify sys_read call
mov ebx,0 ; Specify File Descriptor 0: Standard Input
mov ecx,Bytes ; Pass offset of the buffer to read to
mov edx,BYTESLEN ; Pass number of bytes to read at one pass
int 80h ; Call sys_read to fill the buffer
mov ebp,eax ; Save # of bytes read from file for later
cmp rax,1 ; If EAX=0, sys_read reached EOF on stdin
je MissingTwoByte ; Jump If Equal (to 1, from compare)
cmp rax,2 ; If EAX=0, sys_read reached EOF on stdin
je MissingOneByte ; Jump If Equal (to 2, from compare)
cmp eax,0 ; If EAX=0, sys_read reached EOF on stdin
je Done ; Jump If Equal (to 0, from compare)
:MissingOneByteと:MissingTwoByte機能、私は右、私の '=' バイトに追加する必要がありますか?それをどうすれば実現できますか?
あなたの問題は何か不明です。確かにあなたは 'mov [Bytes + 1]、 '=''などを探していませんか? – Jester
いいえ、私は説明する方法を本当に知らない、私の英語はそれほど良くない。 – Arkarr
これは32ビットですか、64ビットですか? –