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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2014, 22:28   #1
K_arina
 
Регистрация: 24.11.2014
Сообщений: 3
По умолчанию Assembler, что-то не то с кодом

Есть код. Но он составлен неверно может не эргономично. Помогите пожалуйста разобраться что не так.
Код:
.386
.model flat,stdcall
 option  casemap:none
      include   c:\masm32\includes\windows.inc
      include   c:\masm32\includes\user32.inc
      include   c:\masm32\includes\kernel32.inc
      includelib c:\masm32\lib\user32.lib
      includelib c:\masm32\lib\kernel32.lib
 bufsize EQU 12
.data
  a dd 300
  b dd 500
  d dd 300
  fmt db "Max = %2d",0
  buf db bufsize dup(0)
  ctrlf db 0dh,0ah
  stdout dd ?
  cWritten dd ?
  result dd ?
.code
 start:
  invoke GetStdHandle,STD_OUTPUT_HANDLE
  mov stdout,eax
   mov eax,a            
   mov result,eax  ; изначально максимальный это a
   cmp eax,b       ; сравниваем со вторым числом
   jbe big1        ; если a<=b , значит b больше a
   ja min1         ; иначе a ещё максимальное
  big1:
    mov eax,b           
	mov result,eax  ;теперь b максимальное
    cmp eax,d 
	jbe big2   ; максимальное c 
	jmp print
	big2: 
	  mov eax,d 
	  mov result,eax ;максимальный c
	  jmp print
  min1:
    mov eax,d
	cmp eax,a
	jbe big3
	mov result,eax
	jmp print
	big3:
	  mov eax,a
	  mov result,eax
	  jmp print
   print:
    mov edx,result
    invoke wsprintf, ADDR buf, ADDR fmt, edx
    invoke WriteConsoleA, stdout, ADDR buf, bufsize, ADDR cWritten, NULL
    invoke WriteConsoleA, stdout, ADDR ctrlf, 2, ADDR cWritten, NULL
 end start
K_arina вне форума Ответить с цитированием
Старый 25.11.2014, 22:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а... Что нужно сделать было?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.11.2014, 22:37   #3
K_arina
 
Регистрация: 24.11.2014
Сообщений: 3
По умолчанию

Что нужно было сделать неизвестно. Скорее всего это тоже нужно узнать в процессе.
K_arina вне форума Ответить с цитированием
Старый 25.11.2014, 22:53   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Нужно было найти максимальное из трех чисел )
Son Of Pain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что с кодом? paul_8 C# (си шарп) 5 30.10.2013 00:15
Что не так с кодом? SL1M_DOGG JavaScript, Ajax 16 13.07.2013 18:28
Что с кодом grafgrial Общие вопросы Delphi 9 24.05.2010 11:11
Шифрование данных ASCII кодом на Assembler Cerebrate Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 26.02.2008 13:56
Что с кодом ? Look Общие вопросы C/C++ 11 06.11.2007 14:48