Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 16-bit ASSEMBLER (DOS)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

iMPRE7

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день,
 
Столкнулся с моим ночным кошмаром ассемблером и у меня такое задание:

  • Считать с клавиатуры восьмеричное число
     
  • Проверить являются ли все введенные символы допустимыми в программе
     
  • Перевести число в 10 систему
     
  • Вывести на экран

 
Помогите пож кто чем может.
 
Имеется вот это:

Код:
 
.model small
 
.stack 100h
 
.code
  Nachalo:
 
    MOV    ax, 173o    
 
    CALL    Schiot
 
    MOV    ah, 4Ch    
    MOV    al, 0
    INT    21h    
        
  PROC     Schiot
 
    PUSH  ax
    PUSH  cx
    PUSH  dx
    
    MOV      cx, 10
    PUSH  "$$"
 
  Delenie:
    MOV      dx, 0    
    DIV      cx
    PUSH      dx
    CMP      ax, 0    
    JA       Delenie
    MOV      ah, 2    
 
  Pechat:
    POP      dx
    CMP      dx, "$$"    
    JE      Konec    
    ADD      dl, '0'    
    INT      21h    
    JMP      Pechat
 
  Konec:
    POP      dx
    POP      cx
    POP      ax
    RET
    Schiot ENDP
    
END nachalo
 

 
Работает безотказно, НО Нужна считка
 
Пробовал в начале и такое:
 

Код:
 
.model small
 
razmerBuffera    EQU    127
 
.stack 100h
 
.data
 
    bufRazmer     db      razmerBuffera                ;Сколько максимально символов можно считать
    schital        db    ?                            ;Количество считанных символов
    buffer        db      razmerBuffera dup (?)    ;Считанные символы
 
 
.code
  Nachalo:
    MOV    ax, @data        
    MOV    ds, ax    
 
        MOV ah, 9
        MOV ax , offset buffer                ;хотя вроде для этого используется dx, но я не знаю  
        INT 21h                                    ;как изменить процедуру чтоб работала с dx  
 
 
        Call Schiot                                 ; **** Процедура из прошлого кода ****
 
                                            .      .      .      .
                                            .      .      .      .
                                            .      .      .      .
 

 
З.Ы. Я полный лошара в асм.

Всего записей: 3 | Зарегистр. 12-10-2010 | Отправлено: 16:33 12-10-2010 | Исправлено: iMPRE7, 17:51 12-10-2010
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iMPRE7
тебе сюда:
http://forum.ru-board.com/topic.cgi?forum=33&topic=7682#1

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 17:10 12-10-2010
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 16-bit ASSEMBLER (DOS)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru