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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2011, 00:06   #1
Renat21
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 12
По умолчанию Сложение двух чисел вводимых с клавиатуры

Привет всем! У меня есть прога по сложению двух чисел на ассемблере:

.model tiny
.data
ch1 db 6,'$'
ch2 db 6,'$'
.code
main proc
mov ax,@data
mov ds,ax

mov ax,0

mov ah,0Ah
mov dx,offset ch1
int 21h

mov bx,offset ch1

mov ah,0Ah
mov dx,offset ch2
int 21h

mov cx,offset ch2

add bx,cx

mov ah,09h
mov dx,offset bx
int 21h

mov ah,08h
int 21h

mov ax,4C00h
int 21h

main endp
end main

Но данная прога работает некорректно, а почему не могу понять? Может кто подскажет?
Renat21 вне форума Ответить с цитированием
Старый 16.03.2011, 03:33   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

PHP код:
add bx,cx 
дануконешно. Вот формат буфера, на который указывают bx/cx:

PHP код:
Format of DOS input buffer:

Offset  Size    Description     (Table 01344)
00h    BYTE    maximum characters buffer can hold
01h    BYTE    
(callnumber of chars from last input which may be recalled
(retnumber of characters actually readexcluding CR
02h  N BYTEs   actual characters read
including the final carriage return 
Да, и не факт, что bx переживёт вызов int 21 невредимым.

PHP код:
mov ah,09h
mov dx
,offset bx
int 21h 
Ну даже если допустить, что каким-то чудом в bx попал результат сложения, и что транслятор проглотит этот наивный offset, девятая функция 21-го прерывания ну никак не переведёт число из dx в строку символов, заканчивающихся $.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 16.03.2011 в 03:40.
veniside вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск суммы последовательных чисел, вводимых с клавиатуры, предшествующих первому введённому нулю aicer Помощь студентам 1 02.03.2011 22:29
Сложение двух десятичных положительных чисел. целых чисел))) PEro_man Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 01.12.2010 12:40
Сложение двух бинарных чисел на С++ innaa639 Помощь студентам 0 19.04.2010 14:05
поиск суммы последовательных чисел, вводимых с клавиатуры, предшествующих первому введённому нулю hen Помощь студентам 8 22.04.2009 23:03
сложение двух чисел pif Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 18 15.02.2009 12:51