Народ киньте исходники программ по ассемблеру, у кого что есть.

компьютеры программирование программы assembler

Желательно с комментами. С утра зачет, сейчас посидеть поразбирать пока чтобы. Я то семестр весь ни черта по нему не делала)))

Примечание:
моя вина. должна была сказать что под TASM нужен))))
Ответы:
DOSSEG
.MODEL SMALL
.STACK 100h
.DATA
msl EQU 100
eps EQU 3
buff DB msl DUP (?)
string DB msl DUP(?)
err_msg DB 'Error! Found unknown symbol!$'
number DT ?
char_ DW ?
divider DW 10
multiplier DW 2
status_ DW ?
size_ DW ?
end_num EQU 13
chast DT ?
.CODE
part_init: mov ax, @DATA
mov ds, ax
mov es, ax
mov ax, 3
int 10h
mov ah, 3Fh
mov bx, 0
mov cx, msl
mov dx, OFFSET buff
int 21h
cmp ax, 0
jz exit
finit
fldz ; init number
fld1
fld1
fld1
fadd
fdiv
fstp chast
mov bx, 0FFh
mov dx, 0
mov cx, 0 ; sign '+'
cld
mov si, OFFSET buff
part_1: lodsb
cmp al, '-'
jne start_check
mov cx, 1 ; sign '-'
begin_loop: lodsb
start_check: cmp al, ','
je found_point
cmp al, end_num
je found_end
fild divider
fmul
cmp al, '0'
jna not_number
cmp al, '9'
jnb not_number
sub al, '0'
mov ah, 0
mov char_, ax
fild char_
fadd
jmp begin_loop
not_number: mov ah, 9
mov dx, OFFSET err_msg
int 21h
mov al, 1
exit: mov ah, 4Ch
int 21h
neg_number: neg dx
jmp check_point
found_point: mov bx, si
jmp begin_loop
found_end: cmp cx, 1
je neg_number
check_point: cmp bx, 0FFh
je part_2
sub si, bx
mov cx, si
dec cx
begin_div: fild divider
fdiv
loop begin_div
part_2: fild multiplier
fmul
part_3: cld
mov di, OFFSET string
ftst
fstsw status_
mov ax, status_
sahf
jge decode
fchs
mov al, '-'
stosb
decode: fstp number ; save number in st(5)
fldlg2
fld number
fyl2x
fld chast
fsub
frndint
fistp size_
mov cx, size_
add di, cx
inc cx
push di
std
fld number
fld chast
fsub
frndint
begin_main: fild divider
fdiv
fst st(1)
fld chast
fsub
frndint
fst st(4)
fsub
fild divider
fmul
fistp char_
mov ax, char_
add al, '0'
stosb
fld st(2)
loop begin_main
pop di
inc di
cld
mov al, ','
stosb
mov cx, eps
fld number
fst st(1)
fld chast
fsub
frndint
fsub
begin_dr: fild divider
fmul
fst st(1)
fld chast
fsub
frndint
fist char_
mov ax, char_
add al, '0'
stosb
fsub
loop begin_dr
mov al, '$'
stosb
mov ah, 9
mov dx, OFFSET string
int 21h
mov al, 0
jmp exit
END


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.