forever.。
没有人知道为什么?感谢很多!随时问我有关我卑鄙的代码的问题。
SECTION .data
linefeed db 0xA,0xD
SECTION .bss
SECTION .text
global _start
_start:
mov eax,13
int 80h
;push eax
mov edi,eax
mov bl,1
mov cl,0
bitmaska:
shl bl,cl
and al,bl
shr al,cl
shr bl,cl
add al,48
mov edx,1
movzx ecx,al
mov ebx,1
mov eax,4
int 80h
;pop eax
mov eax,edi
inc cl
cmp cl,8
jnz bitmaska
konec:
mov edx,1
mov ecx,linefeed
mov ebx,1
mov eax,4
int 80h
mov ebx,0
mov eax,1
int 80h
操作
我建议您在循环中时不会输出,而是将存储到内存,然后您可以一次输出所有内容。
为此,您将lineFeed的定义更改为:
write
buffer db '????????'
linefeed db 13, 10
现在,核心循环应该是一个简单的循环。无需通过Cl的多次转移:
konec:
mov edx, 10
mov ecx, buffer
mov ebx, 1
mov eax, 4
int 80h
mov ebx, eax
mov edi, buffer
mov ecx, 8
bitmaska:
mov al, 48
shl bl, 1 ; Shift a bit out into the carry
adc al, 0 ; Add that bit to the value 48
stosb ; Store '0' or '1' in the buffer
dec ecx
jnz bitmaska
shl bl, 1
。