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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2010, 11:02   #1
Ekaterina90
Новичок
Джуниор
 
Регистрация: 17.05.2010
Сообщений: 1
По умолчанию Калькулятор

Задали написать программу калькулятор для обработки 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
Ekaterina90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор SPQR10000 Помощь студентам 11 25.02.2010 22:01
Калькулятор Иринка26 Помощь студентам 11 19.02.2010 17:05
Калькулятор slivochny Общие вопросы C/C++ 4 17.06.2009 20:49
калькулятор FARGO Общие вопросы Delphi 1 14.12.2008 23:01
Калькулятор Димарик Общие вопросы Delphi 1 04.10.2008 15:52