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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2010, 19:24   #1
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
Печаль a+b на асемблере

Почему когда результат больше одной цифры то ответ выводит: ;
А когда результат одна цифра то все ОК ?
Вот код:
Код:
model small

.data ; сегмент даних 

msg1 db 'Vvedit "A" :','$' ;
msg2 db 'Vvedit "3" :','$' ;
msg3 db 'Vvedit "*" :','$' ;

symbol	db 100

.stack 256

.code                       ;сегмент коду


start: 		mov ax,@data ; Настроить сегментные регистры ds и es
		mov ds,ax
		mov es, ax

		
; Робимо вивід на екран msg1
		mov ah, 9	   ; ah <- 9 (9 функция DOS - вывод ASCII$-строки на экран)
		mov dx, offset msg1 ; Необходимо настроить регистр dx на начало строки 
		int 21h 	   ; Сделать вызов данной функции


; Считывание символа с клавиатуры
		mov ah, 1	; ah <- 1 (первая функция DOS - считывания символа с клавиатуры)
		     	        ; ASCII-код нажатой клавиши записывается в al
		int 21h		; Сделать вызов данной функции
		mov [symbol], al

		ADD [symbol], 6 ;додаємо +6

;Виведення в потрібному місці
		MOV AH, 3   ; считывание текущего положения курсора (DH - строка, DL - столбец)
    		INT 10H   ; вызов прерывания BIOS 10H
    		inc DH   ; переходим на следующую по вертикали позицию курсора 
    		MOV AH, 2   ; установить положение курсора
		;MOV BH, 0
    		INT 10H   ; вызов прерывания BIOS 10H



; Вывод считаного символа на экран
	mov ah, 2	; ah <- 2 (вторая функция DOS - вывод символа на экран)
	mov dl, [symbol]	; ASCII-код символа для вывода на экран должен быть 
			;   помещен в регистр в dl
	int 21h 	; Сделать вызов данной функции 



Exit:   mov ax, 04c00h    ; ah = 04c -> функция DOS завершения программы
            		  ; al = 00  -> код ошибки 0 (нормальное завершение работы)     
    	int 21h        ; Сделать вызов данной функции    

end start
Alex1991 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
где программировать на асемблере? Котик Помощь студентам 10 29.04.2010 20:37
Простая програма на асемблере Vladya Помощь студентам 4 05.04.2009 22:50
прога на асемблере не работает с отрицательными числами frankfish Помощь студентам 1 12.03.2009 09:05