Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с прогой на Asm'е 
:(
    Опции темы
kda99
  Дата 17.5.2006, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.5.2006

Репутация: нет
Всего: нет



Скоро сессия, а я в Ассемблере как свинья в апельсинах. Помогите кому не сложно.

Такая вот ерунда. Из массива, расположенного между адресами ADR1 и ADR2 (ADR1<AD), выделить минимальное и максимальное числа с учётом знака (байты/слова). Записать результат в ячейки MIN и MAX, вывести MIN в порт PORT1, а MAX в PORT2. (Для MASM 6.1 или TASM 5)
      
PM MAIL   Вверх
Chingachguk
Дата 17.5.2006, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Код

mov  si,ADDR1
mov  di,ADDR2

cmp  si,di
jae   @@ThereAreNotAnyData
mov  ax,di
sub   ax,si
cmp  ax,1
jbe   @@ThereAreNotAnyData

mov  ax,0 ; ax will be as "MAX"
mov  bx,0FFFFh ; bx will be as "MIN"

@@FindMixAndMax:

  mov  cx,ds:[si]

  cmp  ax,cx
  jae   @@NoNewMax
  mov  ax,cx

@@NoNewMax:

  cmp  bx,cx
  jbe   @@NoNewMin
  mov  bx,cx

@@NoNewMin:

  add  si,2
  cmp  si,di
  jbe   @@FindMixAndMax

; Here we can output MAX (ax) and MIN (bx)

  mov  di,offset MAX_MIN_String+4
  call   HexChar
  mov  ax,bx
  mov  di,offset MAX_MIN_String+13
  call   HexChar
  mov ah,09h
  mov dx,offset MAX_MIN_String
  int  21h

MAX_MIN_String db 'Max=???? Min=????',0Dh,0Ah,'$'

; Here we have to say something like "There ain't any data to find MIX & MAX"
@@ThereAreNotAnyData:

...

HexChar proc near
        pusha
        mov  cx,4
        mov  bx,offset TabHex
@GetHex:rol  ax,4
        push ax
        and  al,0fh
        xlat
        stosb
        pop  ax
        loop @GetHex
        popa
        retn
HexChar endp
TabHex         db '0123456789abcdef'
 


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0376 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.