|
программа для i8086, поможете написать курсовую? |
|
|
|
 |
Ответов
|
Sep 4 2010, 07:35
|

Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 29-10-09
Из: брежнев
Пользователь №: 53 292

|
можно поинтересоваться, как последовательно ввести введенные цифры в ОЗУ и вычислить значение введенного числа (т.е допустим, вводим число 435, для компьютера это последовательность из 4, 3, 5. как дать процессору понять чтобы он допустим, 5 умножил на 1, 3 на 10, 4 на 100, сложил бы их и т.о., вычислил бы введенное число.) или я не совсем понимаю, что мне нужно сделать? CODE ;По запросу программы пользователь вводит с клавиатуры ;последовательность целых трехзначных положительных десятичных чисел, ;разделенных пробелами. Ввод последовательности заканчивается нажатием <Enter>. ;Программа выводит эти же числа на экран в порядке возрастания величины числа, ;причем в шестнадцатеричной системе счисления. ;====================================================================== .model small ;определили модель памяти как small .stack 128 ;выделели под программу 128 байт памяти .data ;объявили сегмент данных ;mess db 'Hi man!$' ;определили переменную типа databyte размером 1 байт next db '', 0Dh, 0Ah, '$' ;определили переменную типа databyte размером 1 байт mess db 'vvedite chisla?', 0Dh, 0Ah, '$' ;определили переменную типа databyte размером 1 байт endpr db 'end program', 0Dh, 0Ah, '$' ;db 0Dh,0Ah,24h .code ;объявили сегмент кода main: ;следующими двумя строками мы связываем адрес сегмента данных с его реальным расположением в памяти. ;Это связано с тем, что сегмент кода и сегмент данных расположены по одному и тому же ;адресу в памяти при инициализации программы. mov ax,@data mov ds,ax ;следующие три строки кода выводят на экран надпись "'vvedite chisla?" lea dx,mess mov ah,09h int 21h ;================================ in_out: mov ah,0 ; Ожидаем нажатия и int 16h ; читаем код клавиши mov bl,al ; Сохраняем код mov ah,0eh ; Выводим символ int 10h ; на экран cmp bl,' ' ; Если не нажата клавиша je space ; пробел, повторяем ввод cmp bl,13 ; это клавиша ENTER? je enter ; если нажата кнопке ENTER, перейти в подпрограмму ENT :если не нажаты клавиши пробела и ентера, предполагаем что нажаты ;цифры, и последовательно сохраняем их (наверно, в ОЗУ?) jmp in_out ;================================ ;по нажатию пробел нужно последовательно извлечь все введенные ;цифры и вычислить значение введенного числа в десятичном виде space: lea dx,next;перевод на следующую строку mov ah,09h int 21h lea dx,next;перевод на следующую строку mov ah,09h int 21h jmp in_out ;================================ ;по нажатию ентера вычислять числа в порядке возрастания, ;преобразовывать их в 16-ричные и выводить enter: lea dx,next;перевод на следующую строку mov ah,09h int 21h lea dx,endpr;вместо ендпрограмм должен быть вывод чисел mov ah,09h int 21h jmp in_out ;================================ ;собственно последние две строчки корректно завершают программу mov ax,4c00h int 21h end main
--------------------
на любой элемент найдется мощность, которая его сожжет.
|
|
|
|
Сообщений в этой теме
skef программа для i8086 Sep 1 2010, 08:49 zltigo QUOTE (skef @ Sep 1 2010, 11:49) в каких ... Sep 1 2010, 08:53 skef на ассемблере.
нашел какой-то TASM и турбо дебагге... Sep 1 2010, 09:09 vvs157 Цитата(skef @ Sep 1 2010, 13:09) на ассем... Sep 1 2010, 09:41 zltigo QUOTE (skef @ Sep 1 2010, 12:09) на ассем... Sep 1 2010, 10:05 dimka76 Цитата(skef @ Sep 1 2010, 13:09) на ассем... Sep 2 2010, 11:03 Andron_ в блокноте)
а потом по табличке в машинные коды п... Sep 1 2010, 09:33 skripach Цитатана ассемблере.
TASM+TLINK Sep 1 2010, 09:34 skef нифига не понятно.
в папке tasm.exe, tlink.exe, td... Sep 1 2010, 10:31 @Ark Цитатанифига не понятно.
Может лучше готовый курсо... Sep 1 2010, 10:50 x736C Дебагеру скармливаются исполняемые файлы. Сперва н... Sep 1 2010, 10:58 MrYuran TASM FAQ
Ну и вообще, смелее используйте поисковик... Sep 1 2010, 11:01 skef Спасибо! Началось что-то получаться! Sep 1 2010, 12:17 Deka А ещё есть неплохой сайт WASM Sep 1 2010, 17:59 zltigo QUOTE (Deka @ Sep 1 2010, 20:59) А ещё ес... Sep 1 2010, 19:31 skef как отображать то, что я набираю с клавиатуры?
и е... Sep 2 2010, 08:20 Sergei_Ilchenko >> mov al,ax ;пересылаем ax в al============... Sep 2 2010, 08:24 skef а так получится?
int 16h ; Читаем код... Sep 2 2010, 08:38 AHTOXA Перед вызовом int 16h надо занести 0 в AH. Sep 2 2010, 08:50 zltigo QUOTE (skef @ Sep 2 2010, 10:38) а так по... Sep 2 2010, 09:32 @Ark ... Sep 2 2010, 08:58 skef теперь нули не показал. просто после введенного си... Sep 2 2010, 08:59 @Ark ...
in_out: mov ah,0 ; Ожидаем нажатия и
... Sep 2 2010, 09:13 @Ark ЦитатаВообще-то все это почти хаотичный набор букв... Sep 2 2010, 10:08 zltigo QUOTE (@Ark @ Sep 2 2010, 12:08) zltigo, ... Sep 2 2010, 11:08  VslavX Цитата(zltigo @ Sep 2 2010, 14:08) Не сто... Sep 2 2010, 11:34   zltigo QUOTE (VslavX @ Sep 2 2010, 13:34) TASM-т... Sep 2 2010, 11:45 skef нашел несколько готовых курсовых. но это все не то... Sep 2 2010, 10:50 MrYuran Цитата(skef @ Sep 2 2010, 14:50) по повод... Sep 2 2010, 11:28 vvs157 Цитата(skef @ Sep 2 2010, 14:50) приходил... Sep 2 2010, 11:55 @Ark Цитатамне надо написать с 0 и до работующего по за... Sep 2 2010, 10:55 skef По запросу программы пользователь вводит с клавиа... Sep 2 2010, 11:27 @Ark ЦитатаТакже очень внимательно посмотрите описание ... Sep 2 2010, 12:22 x736C Цитата(@Ark @ Sep 2 2010, 16:22) Для ввод... Sep 2 2010, 12:48 @Ark ЦитатаСможете обосновать?
DOS, также предоставляет... Sep 2 2010, 13:06 x736C А насколько я помню, ДОС обеспечивал как раз комфо... Sep 2 2010, 13:14 @Ark ЦитатаА насколько я помню, ДОС обеспечивал как раз... Sep 2 2010, 13:25 vvs157 Цитата(@Ark @ Sep 2 2010, 17:25) в ней ис... Sep 2 2010, 13:37 VslavX Цитата(@Ark @ Sep 2 2010, 16:25) Программ... Sep 2 2010, 13:42 x736C Цитата(@Ark @ Sep 2 2010, 17:25) Программ... Sep 2 2010, 13:55 @Ark ЦитатаПоопросный режим работы с СОМ-портом - очень... Sep 2 2010, 13:41 @Ark ЦитатаДа и зачем тут спорить, не понимаю.
Видимо, ... Sep 2 2010, 14:04 x736C А вы откройте, например, Norton Disk Editor.
«Прил... Sep 2 2010, 14:15 @Ark ЦитатаУ нас с вами, действительно, не совпадают по... Sep 2 2010, 14:28 vvs157 Цитата(@Ark @ Sep 2 2010, 18:28) Прикладн... Sep 2 2010, 17:51  VslavX Цитата(vvs157 @ Sep 2 2010, 20:51) DOSBox... Sep 2 2010, 20:50 x736C Корректность задним числом не оценивается, но это ... Sep 2 2010, 14:30 @Ark Цитата100% DOS'овских программ, работающих по ... Sep 2 2010, 18:31 vvs157 Цитата(@Ark @ Sep 2 2010, 22:31) Когда-то... Sep 2 2010, 21:02 skef после сравнений с клавишами ентер и пробел, встави... Sep 4 2010, 09:09 @Ark Могу Вам дать несколько рекомендаций чисто по напи... Sep 4 2010, 11:37 skef я так и делал. до вставки вычисления числа програм... Sep 4 2010, 13:30 XVR В вашем коде есть что то итальянское - очень на сп... Sep 5 2010, 08:28 skef алгоритм работы программы я себе вполне ясно предс... Sep 5 2010, 13:55 XVR Цитата(skef @ Sep 5 2010, 17:55) алгоритм... Sep 6 2010, 07:34 skef 1) программа стартует. выводит надпись "введи... Sep 6 2010, 08:22 XVR Это не совсем алгоритм - это описание работы прогр... Sep 6 2010, 08:33 skef 1) не должна. можно вводить в одну строку.
2) ниче... Sep 6 2010, 08:39 XVR Цитата(skef @ Sep 6 2010, 12:39) 1) не до... Sep 6 2010, 14:32 Hlad Вставлю свои пять копеек
а). По поводу DOS/BIOS - ... Sep 15 2010, 15:03 АНТОН КОЗЛОВ Можно для 86-го процессора все на борланд-паскале ... Sep 16 2010, 05:14
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|