Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2012, 16:35   #1
sergey123
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 11
По умолчанию исправить ошибки

Я недавно начал изучать ассемблер. Вот написал программу. При компиляции несколько ошибок. Помогите, пожалуйсто , исправить.



Код:
   .486
      .model flat, stdcall
      option casemap :none   ; case sensitive
;#########################################################################
      include \masm32\include\windows.inc
      include \masm32\include\user32.inc
      include \masm32\include\kernel32.inc

      includelib \masm32\lib\user32.lib
      includelib \masm32\lib\kernel32.lib
;#########################################################################
    .data
        Msg db 'assembler'
	dOut HWND ?
	dIn HWND ?
	con COORD <1,2>
	Num dd 10
	Text dw 10 dup (?)
	mas dw 1,1,1,1,1
	i db 0
	che dw 0
	tm dw 0
	kol db 0
	znak dw 0
	dle dw 0
	j dw 0
	
;#########################################################################
    .code

start:
call AllocConsole
test eax,eax
jz exit
push offset Msg
call SetConsoleTitleA
test eax,eax
jz exit
push STD_OUTPUT_HANDLE
call GetStdHandle
mov dOut,eax
push STD_INPUT_HANDLE
call GetStdHandle
mov dIn,eax
;#############################################################
nachalo:
cmp eax,0
jz exit
push 0
push offset Num
push Num
push offset Text
push dIn
call ReadConsoleA
cmp eax,0
jz exit
vvod: ;#######################################
xor dl,dl
mov dl ,Text[j]
sub bl,30h
mov dl,dl
if dl le 9h
mov i,0
else
mov i,1
jmp next
endif 
xor ax,ax
mov al,10
mul che
jnc m1
mov che,dx
m1:
mov che,ax
add che,dl
jnc m2
adc ah,0
m2:
inc j
cmp i,0
je vvod
next:
add dl,30h
mov znak,dl
inc kol
if kol eq 2
jmp chet
else
jmp vvod
endif
chet:
if znak eq 2Bh
add che,tm
jnc m3
adc ah,0
m3:
jmp outMsg
endif
if znak eq 2Dh
sub ch,tm
jnc m4
neg ch
m4:
jmp outMsg
endif
if znak eq 2Ah
mov al,tm
mul che
jnc m5
mov che,dx
m5:
mov che,ax
jmp outMsg
endif
if znak eq 2Fh
xor ax,ax
mov ax,tm
div che
jmp outMsg
endif
outMsg:
push 0
push offset Num
push Num
push offset che
push dOut
call WriteConsole
jmp nachalo
exit:
push 0
call ExitProcess
end start

Последний раз редактировалось sergey123; 01.04.2012 в 16:39.
sergey123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправить ошибки Seferus Паскаль, Turbo Pascal, PascalABC.NET 3 06.10.2011 17:54
исправить ошибки admiral121 Паскаль, Turbo Pascal, PascalABC.NET 7 13.12.2010 12:25
Исправить ошибки dragun4ik Помощь студентам 3 06.02.2010 19:10
исправить ошибки dragun4ik Помощь студентам 6 30.01.2010 16:34
исправить ошибки lubafffka Общие вопросы C/C++ 2 06.12.2009 01:11