Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Калькулятор на асм 
:(
    Опции темы
Ekaterina90
Дата 17.5.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задали написать программу калькулятор для обработки 32 битных целых знаковых чисел. Операции только + - и *. Числа вводятся с клавиатуры.
Я не могу сделать перевод чисел в BCD формат из  ASCII кода и полученный результат из BCD в ASCII. Помогите пожалуйста.
Я вот начала делать и запуталась:
TITLE CALC
PAGE 60,132
    
DATASG SEGMENT PARA 'Data'
    NAMEPAR LABEL WORD
    MAXLEN DB 20
    ACTLEN DB ?
    NAMEFLD DW 20 DUP (' ')
    OUTSTR DB 'Out', '$'

    WORD1A DW ?
    WORD1B DW ?
    WORD1 DD ?
    WORD2A DW ?
    WORD2B DW ?
    WORD2 DD ?
    REZ1A DW ?
    REZ1B DW ?
    OPER DB ?
DATASG ENDS
    
STACKSG SEGMENT PARA 'Stack'
    DB 8 DUP(?)
STACKSG ENDS
    
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
    ASSUME CS:CODESG, DS:DATASG, SS:STACKSG
    PUSH DS
    SUB AX,AX
    PUSH AX
    MOV AX,DATASG
    MOV DS,AX

    CALL CLR
    CALL VVOD
    CALL PEREVOD
    
    CMP OPER,2BH
    JE A10
    JMP CON
    
A10: CALL SUMMA
    JMP A20

A20: CALL PEREVOD
    CALL OBRPEREVOD
    CALL VYVOD

CON: RET
BEGIN ENDP

PEREVOD PROC NEAR    ;????????????????? Перевод введеных чисел в BCD формат
    SUB AX,AX
    MOV AX,NAMEFLD
    XOR AX,3030H
    SHL AL,04H
    SHR AX,04H
PEREVOD ENDP    

OBRPEREVOD PROC NEAR    ;??????????????????? Перевод результата в ASCII код
    
    
SUMMA PROC NEAR
    MOV AX,WORD1B
    ADD AX,WORD2B
    DAA
    MOV REZ1B,AX
    MOV AX,WORD1A
    ADC AX,WORD2A
    DAA
    MOV REZ1A,AX
    RET
SUMMA ENDP
    
CLR PROC NEAR
    MOV AX,0600H    ;Function prokrutki screen
    MOV BH,07H    ;Color (for ch/b)
    MOV CX,0000H    ;Ot 00,00
    MOV DX,184FH    ;Do 24,79
    INT 10H        ;Vyzov BIOS
CLR ENDP
    
CURS PROC NEAR
    MOV AH,02H    ;Function ustanovki cursora
    MOV BH,00H
    MOV DH,01H
    MOV DL,01H
    INT 10H

CURS ENDP
    
VVOD PROC NEAR
    MOV AH,0AH
    LEA DX,NAMEPAR
    INT 21H
    RET
VVOD ENDP

VYVOD PROC NEAR
    MOV AH,09
    LEA DX,OUTSTR
    INT 21H
    RET
VYVOD ENDP

CODESG ENDS
    END BEGIN
PM MAIL   Вверх
iff
Дата 17.5.2010, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


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

Репутация: 5
Всего: 16



А зачем переводить в BCD формат из  ASCII кода? Числа не такие уж большие, можно обробатывать в ASCII формате. 
См. AAA, AAS, AAM, DAA, DAS.


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
Ekaterina90
Дата 17.5.2010, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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