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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2012, 22:20   #1
yura_zb
Пользователь
 
Аватар для yura_zb
 
Регистрация: 15.02.2011
Сообщений: 41
По умолчанию Как вивисть значения регистра AX??

Код:
ideal
model small
stack 100h
dataseg
	fin	db	'Результат виконання: $'
	A dw 2
	B dw 0
	C dw 24
codeseg
start:
	mov	ax,@data
	mov	ds,ax
	mov	ah,09h
	mov	dx,offset fin
	int		21h
	
	mov ax, offset A
	mov cx, offset C
	mov bx, offset B
	
	mov dx, 3
	mul ax
	mul dx
	sub cx, ax
	add bx, 2
	mov ax, bx
	mul ax
	mul bx
	sub ax, 4
	xchg ax, cx
	div cx
	
		
	mov	ax,4c00h
	int	21h
end	start
Как из етого кода вивисти значения AX???
yura_zb вне форума Ответить с цитированием
Старый 02.11.2012, 00:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так пойдёт?

Код:
; tasm /m showdc2.asm
; tlink /t /x showdc2.obj

; программа (в формате DOS COM), выводящей на экран десятичное значение регистра ax:

.MODEL Tiny
.CODE
ORG	100h

Start:

		std                    ; Устанавливаем ОБРАТНЫЙ порядок записи
		lea	di,StringEnd-1 ; ES:DI = последний символ строки String

		mov	ax,Number2      ; Заносим в AX число для перевода

; Начинаем перевод числа AX в строку
		mov	cx,10          ; Задаемся делителем CX = 10
Repeat:
		xor	dx,dx          ; Обнуляем DX (для деления)
		div	cx             ; Делим DX:AX на CX (10),
                                       ; Получаем в AX частное, в DX остаток
		xchg	ax,dx          ; Меняем их местами (нас интересует остаток)
		add	al,'0'         ; Получаем в AL символ десятичной цифры
		stosb                  ; И записываем ее в строку
		xchg	ax,dx          ; Восстанавливаем AX (частное)
		or	ax,ax          ; Сравниваем AX с 0
		jne	Repeat         ; Если не ноль, то повторяем

; Теперь осталось вывести строку на экран
		mov	ah,9
		lea	dx,[di+1]      ; Заносим в DX адрес начала строки
		int	21h            ; Выводим ее на экран

		int	20h            ; Выходим из программы

String		db	5 dup (?),'$'  ; Резервируем 5 байт для строки
StringEnd	=	$-1            ; Указывает на символ '$'
Number2         dw      12345

END		Start
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2012, 15:35   #3
yura_zb
Пользователь
 
Аватар для yura_zb
 
Регистрация: 15.02.2011
Сообщений: 41
По умолчанию спасибо!!!!

спасибо!!!!
yura_zb вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать все буквы нижнего регистра в буквы верхнего регистра druger Помощь студентам 5 18.09.2011 17:27
Как вывести значение регистра данных на экран??? ~VL@D~ Помощь студентам 0 30.03.2011 14:16
Как найти все N-значения и заменить их на значения из 2-х ячеек? Smile2007 Microsoft Office Excel 10 09.12.2010 09:34
вектор как закрытый член класса, как изменять его значения? Zhigool' Общие вопросы C/C++ 3 08.08.2010 23:19
вывод на вторую строку экрана значения регистра Steil Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 24.05.2010 12:15