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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2014, 19:06   #1
zlobrik
Пользователь
 
Регистрация: 28.12.2013
Сообщений: 24
По умолчанию Перевод из восьмеричной в десятичную с/с

Нужно написать программу, которая переводит любое двузначное число из восьмеричной в десятичную систему счисления с помощью XLAT.
Помогите, пожалуйста.
zlobrik вне форума Ответить с цитированием
Старый 01.04.2014, 19:21   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Вопрос

Пока не в чем помогать. Где Ваши наработки? Самостоятельные попытки были?
Streletz вне форума Ответить с цитированием
Старый 01.04.2014, 20:02   #3
zlobrik
Пользователь
 
Регистрация: 28.12.2013
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Пока не в чем помогать. Где Ваши наработки? Самостоятельные попытки были?
Попытки-то были.

Ниже приведен результат выполнения несколько иной программы:
Код:
	;Программа преобразования двузначного шестнадцатеричного числа
	;в десятичное представление с использованием команды XLAT
	;Вход: исходное шестнадцатеричное число; вводится с клавиатуры
	;Выход: результат преобразования в регистре AL
	;-------Сегмент данных---------------------
	DATASG		SEGMENT	PARA	'Data'
	message	DB		"Введите две шестнадцатеричные цифры,$"
	tab1	DB	30h dup (0),0,1,2,3,4,5,6,7,8,9,  7h  dup  (0)
		DB	0ah,0bh,0ch,0dh,0eh,0fh,  1ah  dup  (0)
		DB	0ah,0bh,0ch,0dh,0eh,0fh,  99h  dup  (0)
	DATASG		ENDS				;Конец сегмента данных
	;------------------------Сегмент стека---------------------
	STK		SEGMENT	STACK
	DB		256	DUP ('?')			;сегмент стека
	STK			ENDS				;Конец сегмента стека
	;------------------------Сегмент кода---------------------
	CODE		SEGMENT	PARA	PUBLIC	'CODE'
	MAIN		PROC	FAR				;начало процедуры MAIN
	ASSUME	CS:CODE, DS:DATASG, SS:STK
	MOV		AX,DATASG				;адрес сегмента данных в регистр АХ
	MOV		DS,AX					;AX в DS
	LEA		BX,tab1					;загрузка адреса строки байт в регистр ВХ
	MOV 		AH,9					;функция DOS 09h - вывод строки на дисплей
	MOV		DX,offset message			;адрес выводимой строки
	int		21h					;вызов DOS
	SUB		AX,AX					;очистить регистр АХ
	MOV		AH,1h					;функция DOS 01h - ввод символа с клавиатуры
	int		21h					;вызов DOS: вводим первую цифру в AL
	XLAT							;перекодировка первого введенного символа в AL
	MOV		DL,AL				
	SHL		DL,4					;сдвиг DL влево для освобождения места для 
								;младшей цифры
	int		21h					;вызов DOS: ввод второго символа в AL
	XLAT							;перекодировка второго введенного символа в AL
	ADD		AL,DL					;складываем для получения результата
	MOV		AX,4C00h				;завершение работы программы
	int		21h					;вызов DOS
	MAIN	ENDP						;конец процедуры MAIN 
	CODE	ENDS						;конец сегмента кода
END	MAIN							;конец программы с точкой входа MAIN
zlobrik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из восьмеричной в десятичную с/с zlobrik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 23.03.2014 21:07
Перевод числа из восьмеричной системы счисления в десятичную.С++ Алексей008 Помощь студентам 0 13.12.2012 15:13
Перевод из 16ой в десятичную fiascko Помощь студентам 4 26.10.2010 17:28
Перевод из шестнадцатиричной в десятичную систему Dayne Помощь студентам 5 02.10.2009 01:04