Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2009, 21:44   #1
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию tasm, использование команд ввода/вывода. Доступ к портам

Помогите как сделать ввод с клавиатуры двух чисел и их сумму, а ответ чтоб выводило в рамку...??

начальный код:
.model small
.stack 256
.data
message db 25 dup (7)
db 80*12 dup (' ')
db 35 dup (' '),201,9 dup (205),187,10,13
db 35 dup (' '),186,'otvet',186,10,13
db 35 dup (' '),200,9 dup (205),188,10,13
db 10*80 dup (' '),'$'
.code
begin:
mov ax,@data
mov ds,ax
mov ah,9
mov dx, offset message
int 21h
mov ah,1
int 21h
mov ax,4c00h
int 21h
end begin
iggor вне форума Ответить с цитированием
Старый 17.06.2009, 22:58   #2
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Всё что тебе нужно было это перевести строку в число. Алгоритмов в интернете навалом!!! Ответ с рамкой сам надеюсь добьешь! К тому же сверхсложного здесь нет. Сумма 2-х чисел:
Код:
CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
start:

  mov ax,3
  int 10h
  mov si,10
  call isEnter
  push di
  call isEnter
  pop ax
  add ax,di
  push ax

  mov ah,9
  mov dx,offset dbResult
  int 21h

  pop ax
  xor cx,cx

isDiv:  xor dx,dx
  div si
  push dx
  inc cx
  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,'Resultat:$'
dbEnter  db 13,10,'vvod chisla '
dbVal  db 'W:$'

isEnter: inc byte ptr[dbVal]

  mov ah,09
  mov dx,offset dbEnter
  int 21h

  xor di,di

noNumber: xor ax,ax
  int 16h
  cmp al,13
  jz isStop
  cmp al,'0'
  jb noNumber
  cmp al,'9'
  ja noNumber
  int 29h
  and ax,0fh
  xchg ax,di
  xor dx,dx
  mul si
  add di,ax
  jmp short noNumber
isStop:  ret
 CSEG ends
end start
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript поля ввода/вывода Doublefaced Помощь студентам 2 03.06.2009 01:36
система ввода вывода StudentPolitech Общие вопросы C/C++ 3 02.04.2009 22:22
Задача на ассемблере. Использование команд сдвига. SoundMan Помощь студентам 2 25.09.2008 21:17
Доступ к физическим портам LPT,COM,PCI... Iotun Помощь студентам 2 08.10.2007 16:00
Си против Си++ - сис. ввода-вывода Sota Общие вопросы C/C++ 4 31.07.2007 17:52