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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.12.2009, 13:42   #1
krakozaybra
Новичок
Джуниор
 
Регистрация: 17.12.2009
Сообщений: 2
По умолчанию ПОМОГИТЕ!!!! ГОРЮ НА ЗАЧЕТЕ!!!!!

задание такое: Разработать программу ввода двух чисел, их деления и вывода остатка.

нужно доработатать ввод с клавиатуры
Код:
s segment stack 'stack'
db 128 dup(?)
s ends
d segment
t db '= 0',10,13
  db '0$' ;
d ends
c segment
assume cs:c,ds:d,ss:s
start: mov ax,d ;
mov ds,ax
mov ax,8
mov dl,3
idiv dl
add ax,'00'
mov t+2,al
mov t+5,ah
mov ah,9
lea dx,t
int 21h
mov ah,4ch
int 21h
 ends
end start

Последний раз редактировалось rpy3uH; 18.12.2009 в 21:47.
krakozaybra вне форума
Старый 17.12.2009, 14:24   #2
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

http://forum.vingrad.ru/faq/topic-15...%BB%D0%B0.html
Спасибо можете сказать Ariyashov-у
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума
Старый 17.12.2009, 14:30   #3
krakozaybra
Новичок
Джуниор
 
Регистрация: 17.12.2009
Сообщений: 2
По умолчанию

и чем мне это поможет?( я в этом вообще не шарю((((
krakozaybra вне форума
Старый 17.12.2009, 15:15   #4
Lamo
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 49
По умолчанию

Вот код СОМ-овской программы, складывающей два числа. Работает на фасме. Проверял сам. Пытался под твое задание переделать, не получилось,так как очень мало опыта, ассемблер меньше недели назад начал изучать. Надеюсь, поможет.

Код:
;tasm prog
;tlink prog /t

org 100h
.start:
;перходим в 3-ий режим и чистим экран
  mov ax,3
  int 10h
;коэфициент, для деления и умножения
  mov si,10
;вводим X
  call isEnter
;запоминаем в стеке
  push di
;вводим Y
  call isEnter
;извлекаем из стека AX(X)
  pop ax
;добавляем
  add ax,di
;запоминаем в стеке число
  push ax
;выводим сообщение
  mov ah,9
  mov dx,dbResult
  int 21h
;востанавливаем число
  pop ax
;сбрасываем счетчик цифр
  xor cx,cx
;делим на 10
isDiv:  xor dx,dx
  div si
;запоминаем в стеке остаток от деления и считаем кол-во цифр в числе
  push dx
  inc cx
;повторяем пока не достигли 0
  or ax,ax
  jnz isDiv
;извлекаем из стека цифры в нужном порядке
isOut:  pop ax
;переводим цифру в символ и выводим на экран в цикле
  or al,30h
  int 29h
  loop isOut
;ожидание клавиши
  xor ax,ax
  int 16h
  ret
;
dbResult db 13,10,'Result:$'
dbEnter  db 13,10,'Enter '
dbVal  db 'W:$'
;изменяем переменную
isEnter: inc byte [dbVal]
;выводим сообщение
  mov ah,09
  mov dx,dbEnter
  int 21h
;в этом регистре будет накапливатся число
  xor di,di
;вводим без эхо
noNumber: xor ax,ax
  int 16h
;если ENTER -ввод числа закончен
  cmp al,13
  jz isStop
;все что не цифры игнорируем
  cmp al,'0'
  jb noNumber
  cmp al,'9'
  ja noNumber
;выводим цифру
  int 29h
;преобразовываем в число
  and ax,0fh
;меняем местами рание и только введенное число
  xchg ax,di
;умножаем рание введенное на 10
  xor dx,dx
  mul si
;суммируем
  add di,ax
  jmp short noNumber
;выход из пп
isStop:  ret
;0.end start

Последний раз редактировалось rpy3uH; 18.12.2009 в 21:47. Причина: Перевод английской раскладки на русскую.
Lamo вне форума
Старый 17.12.2009, 15:19   #5
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Надо было переключиться на русскую раскладку и только тогда копировать
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума
Старый 17.12.2009, 15:27   #6
Lamo
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 49
По умолчанию

Спасибо, Russian-stalker, исправил.
Lamo вне форума
Старый 17.12.2009, 15:54   #7
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

А если выделить тегом [code] то будет совсем кросота.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 задачи на паскале, нужен код. "горю на зачете" NIcque Помощь студентам 6 15.05.2009 05:59
помогите с вопросами - горю! Массывы!!! SKS Паскаль, Turbo Pascal, PascalABC.NET 0 07.04.2009 14:28
Помогите посчитать ряд..горю xlr8 Паскаль, Turbo Pascal, PascalABC.NET 7 18.01.2007 07:51