Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Assm - Народ, кто шарит в assembler[e]? Please help me write two subprograms...

Ответить
Настройки темы
Assm - Народ, кто шарит в assembler[e]? Please help me write two subprograms...

Аватара для warezhka84

Пользователь


Сообщения: 82
Благодарности: 1

Профиль | Отправить PM | Цитировать


Народ, помогите пожалуйста написать пару процедурок на ассемблере (для DOS):
1) Вывести содержимое регистра AX на экран.
2) Читает с клавы число и записывает его в регистр AX.

-------
Let's live to friendship!


Отправлено: 00:35, 16-11-2004

 

Аватара для shurikan

Старожил


Сообщения: 240
Благодарности: 1

Профиль | Отправить PM | Цитировать


warezhka84
В какой системе счисления?

-------
UNIX, UNAS и др. Myself I'll like 'em


Отправлено: 20:26, 17-11-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для warezhka84

Пользователь


Сообщения: 82
Благодарности: 1

Профиль | Отправить PM | Цитировать


В десятичной (можно конечно и в шестнадцатиричной...но лучше все таки в decimal[е])

-------
Let's live to friendship!


Отправлено: 20:31, 17-11-2004 | #3


Аватара для shurikan

Старожил


Сообщения: 240
Благодарности: 1

Профиль | Отправить PM | Цитировать


ОК! В пятницу отошлю на ящик.

-------
UNIX, UNAS и др. Myself I'll like 'em


Отправлено: 18:18, 18-11-2004 | #4


Аватара для shurikan

Старожил


Сообщения: 240
Благодарности: 1

Профиль | Отправить PM | Цитировать


warezhka84
Ссылка на E-mail недоступна, кладу здесь.

Код: Выделить весь код
.286
.model large

.code

inbuffer	db 10,0
		db 10 dup(?)

outbuffer	db '         ' ;;; <- здесь не видно, но пробелов 9 штук
outtail		db '$'

signed		dw 0
ten		dw 10

;;;
;;; Получить в AX число.
;;;
public get_in_AX

get_in_AX proc
	push	ax
	push	bp
	mov	bp,sp

	push	si
	push	bx
	push	cx
	push	ds

	push	cs
	pop	ds
	lea	dx,inbuffer
	mov	ah,0Ah
	int	21h

	xor	cx,cx
	mov	cl,inbuffer+1
	jcxz	gAXerr

	lea	si,inbuffer+2
	xor	bx,bx
	mov	signed,bx

gAXloop:
	lodsb

	cmp	al,'+'
	je	@1

	cmp	al,'-'
	jne	@2

	mov	signed,1

@1:
	cmp	si,offset inbuffer+3
	jne	gAXerr

@2:
	cmp	al,'0'
	jb	gAXerr

	cmp	al,'9'
	ja	gAXerr

	xor	ah,ah
	sub	ax,'0'
	xchg	ax,bx

	mul	ten
	add	ax,bx
	js	gAXerr

	xchg	ax,bx

	loop	gAXloop

	jmp	short gAXok

gAXerr:
	stc
	jmp	short gAXdone

gAXok:
	mov	ax,signed
	test	ax,ax
	je	@3

	neg	bx
@3:
	mov	[bp+2],bx
	clc
gAXdone:
	pop	cx
	pop	bx
	pop	si
	pop	ds
	pop	bp
	pop	ax
	ret
get_in_AX endp


;;;
;;; Вывести число из AX на экран*.
;;;
public print_AX

print_AX proc
	std
	mov	signed,0
	test	ax,8000h
	je	@4

	mov	signed,1
	neg	ax

@4:
	push	di
	lea	di,outtail-1

	push	cs
	pop	es

@7:
	test	ax,ax
	je	@5

	xor	dx,dx
	div	ten
	xchg	ax,dx
	add	al,'0'
	stosb
	xchg	ax,dx
	jmp	short @7

@5:
	cmp	di,offset outtail-1
	jne	@6
	add	al,'0'
	stosb

@6:
	mov	ax,signed
	test	ax,ax
	jne	@8

	mov	al,'-'
	stosb

@8:
	push	ds

	push	cs
	pop	ds
	mov	dx,di
	mov	ah,09h
	int	21h

	pop	ds
	pop	di
	cld
	ret
print_AX endp


end

-------
UNIX, UNAS и др. Myself I'll like 'em


Отправлено: 19:54, 19-11-2004 | #5


Аватара для warezhka84

Пользователь


Сообщения: 82
Благодарности: 1

Профиль | Отправить PM | Цитировать


Огромное спасибо.... хотя я и сам почти догнал тут до решения

-------
Let's live to friendship!


Отправлено: 21:25, 25-11-2004 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Assm - Народ, кто шарит в assembler[e]? Please help me write two subprograms...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Тюнер - [решено] Народ кто связан с AverMedia(tv tuner) Нужен DRVCFG (серийник продукта!) Noobser Прочее железо 7 10-02-2009 01:00
.NET - IHTMLDocument2::write(code), открывает IE. Почему? Jorik_85 Программирование и базы данных 2 20-01-2009 13:28
Службы - EWF: Enhanced Write Filter menket Microsoft Windows 2000/XP 4 07-06-2008 09:21
Event log. (Write access) minion Microsoft Windows NT/2000/2003 7 21-03-2008 11:13
No write access to $HOME directory (/) ZAISMIT Общий по Linux 9 03-02-2005 23:36




 
Переход