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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2015, 00:35   #1
GlitchyHydra
Новичок
Джуниор
 
Регистрация: 17.06.2015
Сообщений: 1
По умолчанию Программа с приглашением для ввода числового вектора V. Не пойму что не так (assembler(NASM))

Задание:Написать программу с приглашением для ввода числового вектора V после чего произвести ввод еще одного числа X отдельно. Ввод чисел должен осуществляться с клавиатуры. Над каждым элементом вектора и числом X провести операцию вычитания и вывести измененный вектор V на экран. Приглашение зеленым цветом, при вводе числа отображаются красным цветом, вывод результирующего вектора белым цветом.





Код:
org 0x100

start:	
mov di,0
mov si,0
go:
; ввод символа
mov ah, 0; читать (ожидать) следующую нажатую клавишу
int 0x16
; эхо символа
cmp al, 27
je exit
mov ah, 09h 
mov bx, 0004h ; цвет
mov cx, 1
int 10h
mov ah, 0Eh
int 10h
exit:
ret
m2:
cmp di,4
jnz m1
jz m3
jmp go

ret


string dw 0,0,0,0
array dw 0,0,0,0 
x dw 0


m1:
mov [string+di],al
add si,2
inc di
call go
m3:
mov [x],al


m4:
mov si, 0
mov di,0
cmp di,4
jz m5
mov ax,[string+di]
sub ax,[x]
mov [array+di],ax
inc bx
add si,2
call m4


m5:
mov cx,8
mov si,array
mov ah,02h
m6:
mov dl,[si]
int 21h
inc si
loop m6
ret


Вызываю prog.com вводит 3 числа , а дальше зависает , вызываю afdpro.exe prog.com прерывание int 0x16 делается , а числа не дает вводить просто выполняет левые команды .
Приглашение еще не добавил , так как прога не корректно работает. Если есть мог бы кто-нибудь скинуть какой-нибудь толковый учебник по ассемблеру , но только чтоб nasm assembler или где посмотреть как вводить числа с клавиатуры и заносить в массив я бы мб сам разобрался.
GlitchyHydra вне форума Ответить с цитированием
Старый 20.06.2015, 03:25   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Код:
use16
org 100h
jmp start

mess1  db  ' Input vector...: '
mess2  db  ' Input digit....: '
mess3  db  ' Rezult string..: '
buff1  db  10 dup(0)

start:
   mov   al,3
   int   10h

   push  0B800h
   pop   es
   xor   di,di

   mov   si,mess1
   call  printStr

   xor   dx,dx
   mov   dl,18
   call  cursor
   call  input

   mov   di,160
   mov   si,mess2
   call  printStr

   inc   dh
   mov   dl,18
   call  cursor
   call  input


   mov   di,320
   mov   si,mess3
   call  printStr

   xor   ax,ax
   int   16h
   mov   ah,4ch
   int   21h

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
printStr:
   mov   cx,18
   mov   ah,0Ah
@1:
   lodsb
   stosw
   loop @1
ret
cursor:
   mov   ah,2
   int   10h
ret
input:
   mov   cx,5
@2:
   xor   ax,ax
   int   16h
   mov   ah,0Ch
   stosw
   inc   dl
   call  cursor
   loop  @2
ret
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для вычисления выражения по формуле (вычисление числового ряда) Vitalyas Паскаль, Turbo Pascal, PascalABC.NET 13 30.11.2014 05:33
Что-то не так в программе...не пойму что Karina_Vamp Помощь студентам 5 24.12.2010 21:06
не пойму что не так делаю Crudelis Общие вопросы C/C++ 3 23.04.2010 11:09
Что не так не пойму out of range alco84 Microsoft Office Excel 5 24.01.2010 20:19
Программа ввода и вывода последовательности символов(Assembler) WST Помощь студентам 1 01.04.2008 12:33