Поиск:

Ответ в темуСоздание новой темы Создание опроса
> преобразование двузначного шестнадцатеричного ч. 
:(
    Опции темы
Christoph
Дата 26.9.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



Вот код...вроде ошибок нет, но obj не создает :( что делать? компилирую так TASM.exe /zi 1.asm
Код

;----Prg_6_1.asm---------------
;Программа преобразования двузначного шестнадцатеричного числа
;в символьном виде в двоичное представление
;Вход: исходное шестнадцатеричное число из двух цифр,
;вводится с клавиатуры.
;Выход: результат преобразования помещается в регистр dl.
;------------------------------
;------------------------------
data segment para public "data"        ;сегмент данных
message db "Введите две шестнацетиричные цифры"
data ends
stk segment stack
  db 256 dup ("?")            ;сегмент стека
stk ends
code segment para public "code"        ;начало сегмента кода
main proc                ;начало процедуры main
  assume cs:code, ds:data, ss:stk
  mov ax,data                ;aдрес сегмента данных в регистр ax
  mov ds,ax                ;ax в ds
  mov ah,9
  mov dx,offset message
  int 21h
  xor ax,ax                ;очистить регистр ax
  mov ah,1h                ;1h в регистр ah
  int 21h                ;генерация прерывания с номером 21h
  mov dl,al                ;содержание регистра al в регистр dl
  sub dl,30h                ;вычитание: (dl)=(dl)-30h
  cmp dl,9h                ;сравнить (dl) c 9h
  jle M1                ;перейти на метку M1, если dl<9h или dl=9h
  sub dl,7h                ;вычитание: (dl)=(dl)-7h
M1:                    ;определение метки М1            
  mov cl,4h                ;пересылка 4h в регистр cl
  shl dl,cl                ;сдвиг содержимого dl на 4 разряда влево
  int 21h                ;вызов прерывания с номером 21h
  sub al,30h                ;вычитание: (dl)=(dl)-30h
  cmp al,9h                ;сравнить (al) c 9h
  jle M2                ;перейти на метку М2, если al<9h или al=9h
  sub al,7h                ;вычитание: (al)=(al)-7h
M2:                    ;определение метки М2
  add dl,al                ;сложение: (dl)=(dl)+(al)        
  mov ax,4c00h                ;пересылка 4c00h в регистр с номером 21h
  int 21h                ;вызов прерывания с номером 21h
  main endp                ;конец процедуры main
  code ends                ;конец сегмента кода
  end main                ;конец программы с точкой входа main




P.s на комментарии не обращайте внимание smile


--------------------
user posted image
PM MAIL ICQ   Вверх
ne_tru_e
Дата 26.9.2008, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Приношу жертвы MS
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 20.1.2008

Репутация: 1
Всего: 4



У меня нормально компилит:

Код

\LANGUAGE\Tasm>tasm /zi 1.asm
Turbo Assembler  Version 4.1  Copyright (c) 1988, 1996 Borland International

Assembling file:   1.asm
Error messages:    None
Warning messages:  None
Passes:            1
Remaining memory:  415k


и obj файл создает.

Это сообщение отредактировал(а) ne_tru_e - 26.9.2008, 21:18
PM WWW Jabber   Вверх
Christoph
Дата 27.9.2008, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



ооо и у меня создало) не знаю глюк какой то был) а вот еще вопрос..тут просто переводит из 16-ричной в 2 - ичную системы и записывает результат в регистр dl как мне его вывести?


--------------------
user posted image
PM MAIL ICQ   Вверх
airyashov
Дата 29.9.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 2
Всего: 6



преобразовать в символы и вывести


--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.