Выводит мусор - Assembler
Формулировка задачи:
Привет ребята, подскажите пожалуйста, программа работает вроде правильно, но она еще выводит мусор, как от него избавиться ? MASM32
.386 .model flat, stdcall option casemap : none ; case sensitive include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc include \masm32\include\masm32.inc include \masm32\macros\macros.asm includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\masm32.lib Num PROTO: DWORD .data ar0 db 1d,2d,3d,4d ar1 dw 500,1002,3003,4004 ar2 dd 5 dup(0) var dd 3124 new db 0dh,0ah .code Write proc v:DWORD LOCAL v0[4]:byte lea edi,v0 mov ebx,10 xor ecx,ecx mov eax,v test eax,eax jns beg mov [v0],'-' inc edi neg eax ;////////////////// flo: fld v fld1 fld v fprem fsub st(2),st fxch st(2) ;////////////////// beg: xor edx,edx div ebx add edx,'0' push edx inc ecx or eax,eax jnz beg sto: pop edx mov al,dl stosb dec ecx or ecx,ecx jnz sto print addr v0 ; Выводит 3124 и мусор, как его убрать? ret Write endp start: push var call Write invoke ExitProcess, NULL end start
Решение задачи: «Выводит мусор»
textual
Листинг программы
.386 .model flat, stdcall option casemap : none ; case sensitive include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc include \masm32\include\masm32.inc include \masm32\macros\macros.asm includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\masm32.lib Num PROTO: DWORD .data ar0 db 1d,2d,3d,4d ar1 dw 500,1002,3003,4004 ar2 dd 5 dup(0) var dd 3124 new db 0dh,0ah .code Write proc v:DWORD LOCAL v0[4]:byte lea edi,v0 mov ebx,10 xor ecx,ecx mov eax,v test eax,eax jns beg mov [v0],'-' inc edi neg eax ;////////////////// flo: fld v fld1 fld v fprem fsub st(2),st fxch st(2) ;////////////////// beg: xor edx,edx div ebx add edx,'0' push edx inc ecx or eax,eax jnz beg sto: pop edx mov al,dl stosb dec ecx or ecx,ecx jnz sto xor al,al stosb print addr v0 ; Выводит 3124 и мусор, как его убрать? ret Write endp start: push var call Write invoke ExitProcess, NULL end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д