私は最近アセンブリを独学で学んでおり、NASM アセンブラとその構文が最も効率的で使いやすいと判断しました。現在、標準入力と標準出力を使用しています。ただし、読み取っている文字列から改行文字 (キャリッジ リターン、フォーム フィード、改行、それぞれ 0xd、0xc、0xa) を削除する必要があるため、途方に暮れています。次の点を考慮してください。
section .data
;; ...
section .bss
input: resb 255
.len: equ $ - input
section .text
global _start
_start:
;; Display message prompting for input, then...
mov edx, input.len
mov ecx, input
mov ebx, 0
mov eax, 3
int 0x80
現在、末尾の改行文字を削除したいと考えています。次の擬似コードを検討してください。
if the last character in `input` is 0xa or 0xc or 0xd:
subtract the last character from `input`
repeat until false
私はおそらく自分自身を明確にしましたが、上記の擬似コードに相当する Python を次に示します。
while input[-1] is "\r" or input[-1] is "\f" or input[-1] is "\n":
input = input[:-1]