Студопедия — ГЛАСНЫЕ В КОРНЯХ С ЧЕРЕДОВАНИЕМ
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

ГЛАСНЫЕ В КОРНЯХ С ЧЕРЕДОВАНИЕМ






по дисциплине «Организация ЭВМ»

Тема:«Ввод чисел. Перевод чисел в различные системы счисления»

 

Выполнил: студент гр. ВТ-31

Горбунов И.М.

Проверил: Аленин

А.А.

 

Димитровград, 2014

Задание на выполнение лабораторной работы

Разработать программу перевода чисел из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную. Числа должны вводиться в десятичной системе счисления, а выводятся – в двоичной, восьмеричной и шестнадцатеричной.

 

Выполнение лабораторной работы

Ввод числовой информации. Ввод числовой информации в ассемблерную программу обычно осуществляется в два этапа:

  • ввод строки содержащей число;
  • перевод строки в число.

Для разработки алгоритма перевода введенной строки в число проанализируем структуру числа в позиционной системе счисления (в такой системе счисления вес цифры определяется ее местоположением в числе):

2398=2*1000+3*100+9*10+8=2*103+3*102+9*101+8*100

Таким образом, для перевода строки в число из введенной строки «2398» необходимо последовательно выделять цифры и производить суммирование произведений этих цифр и множителей соответствующих позиции цифры в числе. Если буфер для ввода строки был организован, например, следующим образом:

BUF 05,00,05 DUP (?)

то после ввода строки «2398» он будет выглядеть (в шестнадцатеричной системе счисления) так:

05,04,32,33,39,38,0d

где первый байт – размер буфера, второй – количество введенных символов (без завершающего символа CR), третий, четвертый, пятый, шестой и седьмой – коды символов «2», «3», «9», «8» и «CR» соответственно. Легко заметить, что для того чтобы из кода цифры получить саму цифру необходимо из соответствующего кода вычесть 30h (шестнадцатеричный код нуля). Затем, последовательно в цикле (второй байт – количество введенных символов) выбирая цифры, формировать соответствующий множитель, вычислять произведение и производить суммирование. Нижеследующий фрагмент программы иллюстрирует описанный алгоритм (символы рассматриваются справа налево).

;Ввод числа в виде строки

MOV AH,0AH;в AH номер функции

LEA DX,BUF;DS:DX адрес буфера для ввода

INT 21H

;Перевод строки в число, результат в DI

MOV DI,0

LEA BX,BUF+1;в BX адрес второго элемента буфера

MOV CX,[BX];в CX количество введенных символов

XOR CH,CH

MOV SI,1;в SI множитель

MET: PUSH SI;сохраняем SI (множитель) в стеке

MOV SI,CX;в SI помещаем номер текущего символа

MOV AX,[BX+SI];в AX помещаем текущий символ

XOR AH,AH

POP SI;извлекаем множитель (SI)из стека

SUB AX,30H;получаем из символа (AX) цифру

MUL SI;умножаем цифру (AX)на множитель (SI)

ADD DI,AX;складываем с результирующим числом

MOV AX,SI;помещаем множитель (SI) в AX

MOV DX,10

MUL DX;увеличиваем множитель (AX) в 10 раз

MOV SI,AX;перемещаем множитель (AX) назад в SI

LOOP MET;переходим к предыдущему символу

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

Перевод из десятичной системы счисления в двоичную осуществляется последовательными сдвигами на один бит вправо. Таким образом, значение очередного бита можно вычислить, проанализировав флаг переноса CF (если CF=1 то анализируемый бит был равен 1, и если CF=0, то анализируемый бит – 0).

Перевод из десятичной системы счисления в восьмеричную осуществляется последовательными сдвигами на три бита вправо. После очередного сдвига все биты кроме трех младших обнуляются (например, наложением маски командой AND). Таким образом, в регистре получается восьмеричная цифра, для получения ее символьного отображения к значению в регистре необходимо прибавить код нуля (30h).

Перевод из десятичной системы счисления в шестнадцатеричную осуществляется последовательными сдвигами на четыре бита вправо. После обнуления всех битов кроме четырех младших в регистре получается десятичный эквивалент шестнадцатеричной цифры (число от 0 до 15). Для его представления в шестнадцатеричной символьной форме необходимо организовать таблицу соответствия, которая в простейшем случае представляет собой следующую строку «0123456789ABCDEF». При перекодировании значение десятичного эквивалента используется как смещение в таблице относительно ее начала (перекодировка может осуществляться при помощи команды XLAT).

 

Рисунок 1 – контрольный пример для лабораторной работы №4

 

ГЛАСНЫЕ В КОРНЯХ С ЧЕРЕДОВАНИЕМ

Встречаются однокоренные слова, в корне которых пишутся разные гласные. Это и есть корни с чередованием. Нужно хорошо запомнить, что «написание букв на месте безударных гласных в этих корнях не соответствует общему правилу, а подчиняется традиции». При написании гласной в этих корнях мы будем пользоваться особыми правилами. Эти правила можно объединить в 4 группы.







Дата добавления: 2015-08-27; просмотров: 342. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

Экспертная оценка как метод психологического исследования Экспертная оценка – диагностический метод измерения, с помощью которого качественные особенности психических явлений получают свое числовое выражение в форме количественных оценок...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия