Программа перевода десятичного числа в двоичную и шестнадцатеричную системы счисления
Категория реферата: Рефераты по информатике, программированию
Теги реферата: реферат роль, сочинение на тему зимой
Добавил(а) на сайт: Shein.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата
Программная часть
Описание программы
В этой работе мы рассмотрим один из способов перевода числа из десятичной
системы исчисления в двоичную и шестнадцатеричную с помощью языка
Ассемблера. Прежде чем создавать программу, детально рассмотрим, какие шаги
для этого надо предпринять, то есть другими словами напишем алгоритм
решения нашей задачи. Для того чтобы компьютер мог обрабатывать данные, эти
данные ему надо ввести , а значит первым шагом в решении нашей задачи будет
ввод числа. Вторым шагом в работе будет вывод сообщения о введеном числе.
После этого мы переводим десятичное число в двоичную систему и выводим наше
число в двоичном эквиваленте на экран. Следующим шагом будет перевод числа
в шестнадцатеричный эквивалент и последний шаг это цикл который позволяет
продолжить ввод нового десятичного числа. Теперь соберём все пункты вместе:
1. Ввод числа с клавиатуры.
2. Вывод сообщения о введеном числе.
3. Перевод числа в двоичный эквивалент.
4. Вывод на экран двоичного числа.
5. Перевод числа в шестнадцатеричную систему.
6. Вывод на экран шестнадцатеричного числа.
7. Цикл (продолжим?) если ДА то пункт 1, иначе пункт 8
8. Выход из программы.
Это и есть алгоритм программы на естественном языке.
этапы разработки ассемблерных программ
1. ПОСТАНОВКА ЗАДАчИ. ВКЛЮчАЕТ В СЕБя СОДЕРЖАТЕЛЬНОЕ ОПИСАНИЕ ЗАДАчИ И
РАЗРАБОТКУ АЛГОРИТМА.
2. Разработка текста программ.
3. Ввод текста в компьютер. Текст программы в мнемокодах вводится в ЭВМ при помощи любого текстового редактора. Так же при этом создает ся текстовый
Файл с расширением *.ASM .
4. Компиляция или ассемблирование. Осуществляется преобразование текстового
Файла с расширением *.ASM в объектный Файл, содержащий программу в машинном коде с расширением *.OBJ . Так же на этом этапе может быть создан листинг программы. Файл с расширением *.LST, в котором содержится основная информация о программе, а так же Файл перекрёстных ссылок с расширением *.CRF. На этом этапе происходит проварка текста программ на наличие ошибок. Ассемблирование осуществляется при помощи программы транслятора TASM.EXE (ASM.EXE – в ассемблере, MASM.EXE - в макроассемблере). TASM [опции] *.ASM [,,] - команда для выполнения трансляции. Если в команде указана одна запятая, то Файл листинга
Формируется. В TASM имеются две опции: /ZI и /N. Они вызываются: ТАSМ.
5. Компоновка. На этом этапе создается перемещаемая программа способная загружаться а любую область памяти. Сохраняется в Файле с расширением
*.ЕХЕ или *.СОМ. Для этого используется TLINK.exe (для макроассемблера
LINK.EXE). Имеются опции: /Т и /X.
6. Выполнение и отладка (DEBUG).
7. Занесение машинного кода программы в ПЗУ (может отсутствовать) Теперь мы посмотрим блок-схему нашей программы, то есть упорядоченные действия.
;ПРОГРАММА ПЕРЕВОДА ДЕСЯТИЧНОГО ЧИСЛА В ;ДВОИЧНУЮ И ШЕСТНАДЦАТЕРИЧНУЮ
СИСТЕМЫ ;СЧИСЛЕНИЯ
.MODEL small
.STACK 64
.DATA
;Сегмент данных
;____________________________________________________________________
;Таблица преобразования “цифра – ASCII-код” org 100h tabl_ascii db '0123456789abcdef'
;____________________________________________________________________
;Таблица преобразования “ASCII-код - цифра” org 130h db 0,1,2,3,4,5,6,7,8,9 org 41h db 0ah,0bh, 0ch, 0dh, 0eh, 0fh
;____________________________________________________________________
;Резервация и инициализация переменных в памяти org 150h x_ascii db 20h dup(?) t1 db 0dh,0ah,"Введите число и нажмите Enter" db 0dh, 0ah, "$" t2 db 0dh,0ah,"Вы ввели число”,0dh,0ah "$" t3 db 0dh, 0ah, "В двоичной системе оно
выглядет так" db 0dh,0ah,"$" t4 db 0dh, 0ah, "В шестнадцатеричной так" db 0dh, 0ah, "$" buf db 16 dup(?),"$" t5 db 0dh,0ah, "Будем продолжать процесс?
(Y/N)?" db 0dh,0ah,"$"
;____________________________________________________________________
;Сегмент кодов
.CODE
;Главная процедура g_k proc mov ax,@data mov ds, ax mov es, ax d: lea dx, t1 mov ah,09h int 21h lea di, x_ascii call ink call des_2 push ax lea dx,t3 mov ah,9h int 21h pop ax call bin_dis push ax lea dx,t4 mov ah,9h int 21h pop ax call outhex lea dx,t5 mov ah,9h int 21h mov ah,1h int 21h cmp al,"Y" loope d cmp al,"y" loop d mov ah,4ch int 21h g_k endp ink proc
;Процедура ввода десятичного числа xor cx,cx l1: mov ah,1 int 21h stosb inc cx cmp al,0dh jnz l1 dec cx ret ink endp dis proc
;Процедура вывода на экран десятичного числа r1: mov dl,[di] mov ah,2 int 21h inc di loop r1 ret dis endp des_2 proc
;Перевод числа(десятичного) в двоичную систему mov si,10 lea di,x_ascii sub ax,ax v1: mul si mov bp,ax mov al,[di] sub al,48 inc di mov ah,ch add ax,bp loop v1 ret des_2 endp bin_dis proc
;Процедура вывода на экран двоичного числа lea di,buf mov cx,16 mov bx,ax mov dx,ax conv: mov al,ch shl dx,1 adc al,'0' stosb loop conv mov ah,9h lea dx,buf int 21h mov ax,bx ret bin_dis endp
;Процедура перевода числа(двоичного)в шестнадцатеричную
;и вывод его на экран
outhex: mov ch,al mov al,ah mov ah,2 call prnbh mov al,ch
prnbh: mov dh,al shr al,1 shr al,1 shr al,1 shr al,1 call prnd mov al,dh and al,15
prnd: or al,48 cmp al,58 jc prnc add al,7
prnc: mov dl,al int 33 ret
Рекомендуем скачать другие рефераты по теме: задачи с ответами, реферат на тему россия.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата