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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2013, 12:24   #51
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
например в другом моем посте, для другой задачи посоветовали использовать
Код:
.286
Я Вам уже не раз советовал почитать книги, подучить ассемблер. Давно бы решили свои задачки. Ан нет, продолжаете клянчить, надеетесь на доброго дядю.
vadimych вне форума Ответить с цитированием
Старый 14.02.2013, 22:00   #52
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

ну нет, я раньше даже и вывести числа не мог, а сейчас много знаний получил, на примерах быстрее и надежнее, а в книгах не всегда можно разобраться, вы подскажите в каком направлении идти чтобы решить мою задачу, что исправить нужно, а как исправить постараюсь сам подумать, спасибо
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.02.2013, 06:11   #53
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Алексей_2012, если судить по вопросам, которые Вы задаёте, в ассемблере Вы ни в зуб ногой. А сказки о том, что
Цитата:
на примерах быстрее и надежнее
расскажите где-нибудь в другом месте. Обычное выклянчивание и ничего больше.
vadimych вне форума Ответить с цитированием
Старый 15.02.2013, 09:06   #54
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Читайте книги, делайте простенькие программы и в дебаггере смотрите, как они работают. От того, что кто-то за вас напишет вы не разберетесь в механизмах работы компьютера.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 15.02.2013, 12:07   #55
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

DiemonStar, мне в вашей программе подправить вывод числа и прибавление к 0 тройки,Ж потом 3+6 ну и тд?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.02.2013, 12:08   #56
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

если бы я в ассемблере был ни в зуб ногой, то и этого бы не написал:
Код:
code segment para public 'code'
Assume CS:code, DS:code, SS:code, ES:code
org 100h
mov dx,code
mov ds,dx
mov ss,dx
mov es,dx                         ; заготовка для нормального входа в программу
jmp m46    
np1 db 'PRObeL-BbIXOD...$' 
m47:
mov ah,2
mov dl,0ah                        ; переход на новую строчку
int 21h
m46:
mov si,1                              ; в si регистр помещаем 1, в последствии будем наращивать на 1
mov cx,1000/3                    ; В счетный цикл помещаем значение 1000/3 (333)
m1z:                                    ; метка цикла
mov ax,0 ;   
mov al,3
mul si                                  ; умножаем si на 3 (результат в ах)
PUSH ax                             ; помещаем ах в стек
cmp ax,10                           ; сравниваем регистр ах с 10, если больше или равно то переход на метку М1 
jge m1                                 ; сам переход на метку
mov ah,2
mov dl,al
add dl,30h
int 21h                                 ; вывод числа меньшего чем 10 
jmp m101                            ; прыжок на метку м101 для вывода разделителя
M1:
cmp ax,100                          ; сравниваем регистр ах с 100, если больше, то выводим число
jge m3                                  ; переход на метку м3 по больше или равно для вывода трехзначного                             ;числа, если меньше, то выводим двухзначное число
mov dx,0                              ; обнуляем регистр дх для записи в него остатка 
m45:mov di,10                     ; записываем в di 10, для деления двухзначного числа (получится целая   ; и дробная часть, для вывода этого числа)
div di                                     ; деление на 10
push dx                                  ; запись остатка в стек
mov ah,2
mov dl,al
add dl,30h
int 21h                                    ; вывод целого числа
pop dx                                    ; запись из стека
add dl,30h 
int 21h                                    ; вывод остатка
jmp m101                               ; прыжок на метку для вывода разделителя
m3: pop ax                              ; берем ах из стека
mov dx,0                                 ; обнуляем регистр для записи остатка
mov di,100                              ; помещаем в di 100 для деления трехзначного числа и последующего     ;его вывода
div di                                      ; деление трехзначного числа
push dx                                  ; запись остатка в стек
mov ah,2
mov dl,al
add dl,30h
int 21h                                ; вывод целой части
pop dx                                ; берем остаток из стека
mov ax,dx                           ; помещаем остаток в ах для деление (так как делимое должно быть в ах)
mov dx,0                            ; обнуляем дх
jmp m45                             ; прыжок на метку м45 для вывода оставщейся части числа
m101: 
mov ah,2
mov dl,','
int 21h                                ; вывод разделителя
inc si                                   ; наращиваем si, было 1, стало 2,...,333
loop m1z                            ; пока сх не =333 продолжаем вывод числа
mov ah,2
mov dl,0ah
int 21h                                ; переход на новую строчку
mov ah,09h
lea dx,np1                          ; вывод сообщения
int 21h
mov ah,1
int 21h                                ; ввод символа
cmp al,' '                             ; если символ равен пробелу, то выход
je m105                              ; если равно пробелу то на метку м105
jmp m47                             ; если нажата любая не специальная клавиша кроме пробела, то запуск ;программы сначала (прыжок на метку м47)
m105:
mov ah,4ch
int 21h
code ends
end                                    ; заготовка для нормального выхода из программы
Рабочая, но не оптимизированная
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.02.2013, 12:54   #57
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
если бы я в ассемблере был ни в зуб ногой, то и этого бы не написал:
Вы себе льстите. Знание десятка операторов и пары прерываний не делает вас специалистом в данной области. В ассемблере важнее не знание операторов, а понимание процессов, которые запускаются определенными командами.

Цитата:
DiemonStar, мне в вашей программе подправить вывод числа и прибавление к 0 тройки,Ж потом 3+6 ну и тд?
Мне не на чем компилировать и отлаживать тот код (да и времени на это нет). запускайте отладчик и проходите по алгоритму - это покажет вам все этапы вычисления.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 15.02.2013, 21:39   #58
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

http://www.programmersforum.ru/showp...7&postcount=15 Вот в этом архиве есть компилятор, кто-нибудь попробуйте составить ту же программу с минимальным числом операторов

Цитата:
Вы себе льстите. Знание десятка операторов и пары прерываний не делает вас специалистом в данной области.
как раз таки пока я не рвусь быть специалистом, нам давали только эти команды, ограничиваясь ими написал что смог, т.к преподаватель ориентируется на слабую часть группы, упрощает все и знания дает в упрощенном виде
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 19.02.2013, 00:13   #59
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

скоро практика заканчивается, vadimych, отдельное Вам спасибо, смог оптимизировать ваш код, сократив на несколько строчек, так же разобрался в вашем алгоритме, и смог его объяснить, составить блок-схему и описать словестный алгоритм, работодатель сказал чтобы я переходил на Fasm, и что для программиста главное развиваться дальше и не останавливаться на достигнутом, кстати на счет Fasm, у кого-нибудь есть русская обучалка?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оптимизировать код destic Microsoft Office Excel 14 26.01.2013 01:12
Оптимизировать код strannick Microsoft Office Excel 9 14.11.2012 00:59
Оптимизировать код) Pein95 Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2011 18:42
Оптимизировать код. Манжосов Денис :) Общие вопросы Delphi 1 20.10.2008 19:06
Оптимизировать код NeiL Помощь студентам 2 21.02.2008 08:57