Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 641 • Страница 20 из 33<  1 ... 17  18  19  20  21  22  23 ... 33  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
Foxtrot Помнится в давние времена использовал программу Sourcer(вроде так называется), но она не бесплатная была.



Партнер
 

Member
Статус: Не в сети
Регистрация: 13.08.2005
Foxtrot писал(а):
Просто говоря - да.

Ну возьми любой дизассемблер. Тотже win32DASM и сохрани дизассемблированный текст. А чем проблема-то? :-)

_________________
I L.A.W. you, baby!
For a GNU dawn! For freedom! :-)


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
Откуда: Rostov-on-Don
L.A.W. Я интересуюсь, не будет лм тут каких подводных камней :) И получу я нормальный код в ассемблерном виде или ещё нужно будет его мучать.

_________________
Intel Inside ;-)


 

Member
Статус: Не в сети
Регистрация: 13.08.2005
Foxtrot писал(а):
Я интересуюсь, не будет лм тут каких подводных камней И получу я нормальный код в ассемблерном виде или ещё нужно будет его мучать.

Да вроде все нормально должно быть.

_________________
I L.A.W. you, baby!
For a GNU dawn! For freedom! :-)


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
Откуда: Rostov-on-Don
Хм.. при дизамблерировании получается мягко говоря не маленький код. Хотя исходная программа на Паскале не такая большая. Это нормально? :hitrost:

_________________
Intel Inside ;-)


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
Foxtrot писал(а):
Это нормально?

Да, это следствие неоптимизированности паскалевского компилятора...
Добавлено спустя 2 минуты, 18 секунд
И вообще, как правило в коде любого компиля найдутся такие места, где опытный программист написал бы лучше.


 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
Foxtrot писал(а):
Я интересуюсь, не будет лм тут каких подводных камней И получу я нормальный код в ассемблерном виде или ещё нужно будет его мучать.

Один мой сокурсник сдавал все зачётные программы на асме, но он его совем не знал и писал всё на паскале, а затем дизасемблировал его и всё сдавал. На сколько это правда я не знаю, так как всё было на словах, а я видел только результат, простейшие задачи у него занимали уйму строк, примерно раз в пять или шесть больше, чем мой код аналогичной задачи написанный сразу на асме. Такой вот пример из жизни.
Foxtrot писал(а):
Хм.. при дизамблерировании получается мягко говоря не маленький код. Хотя исходная программа на Паскале не такая большая. Это нормально?

Нормально, а зачем ты вообще это делаешь? Если обсуждалось выше, можно не отвечать.


 

Member
Статус: Не в сети
Регистрация: 13.08.2005
Foxtrot писал(а):
Хм.. при дизамблерировании получается мягко говоря не маленький код. Хотя исходная программа на Паскале не такая большая. Это нормально?

Вполне. Ты же писал не на асме, а на паскале. А на асм переводил уже компилятор.

_________________
I L.A.W. you, baby!
For a GNU dawn! For freedom! :-)


 

Member
Статус: Не в сети
Регистрация: 29.05.2005
Откуда: Белгород
2 ALL Ребят, знаете, как работать с графическими режимами VESA под asm-ом?
Так ставится режим 640x480x16M:
Код:
asm {
  mov ax,4f02h
  mov bx,0112h
  int 10h
}

а вот как пиксели ставить, память выделять для режима и т.п. не знаю.

_________________
Взрослеем. Возможностей стало больше, времени - меньше.
долгосрочно общался:
CelD2.1@3.7|A64Venice@2.6|A64SanDiego@2.7|E6420@3.2|E6750@3.5|Q9300@3.5


 

Member
Статус: Не в сети
Регистрация: 24.12.2005
TuneD Гугль найдёт всё, что нужно. Можешь заглянуть ещё в книгу Зубкова по ассемблеру (тоже в гугле).


 

Member
Статус: Не в сети
Регистрация: 12.12.2003
Откуда: Уфа
Вопросик такой. Есть программа на c++, где выполняется некий расчет, состоящий в основном из умножений матрицы на вектор(размерностью около 100 или больше). Есть ли смысл оптимизировать это на ассемблере с применением sse - sse2?
Код:
   for (int i2=0; i2<num; i2++)
   {
      .....//расчет вектора
      for (i=0; i<size; i++)
         for (j=0; j<size; j++)
            vesa[i]+=vec[j]*G[j][i];
   }

То есть в каждом цикле формируется новый вектор vec и умножается на матрицу G.


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
kexman да ну его, включи поддержку OpenMP в опциях компилятора и будет тебе счастье.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 12.12.2003
Откуда: Уфа
Daemon
А что это такое? OpenMP? Multiprocessor?


 

вот исходник:

Код:
GLOBAL_start
SEGMENT.text
_start:
       mov eax,3
       mov ebx,0
       mov ecx,buf
       mov edx,80
       int 80h
       mov [len],eax
       mov byte[buf+1],'!'
       
       mov eax,4
       mov ebx,1
       mov ecx,buf
       mov edx,[len]
       int 80h
       mov eax,1
       int 80h
   
SEGMENT.data
len dd 0
buf times 80 db 0


почему в linux'e при после ввода текста получается ошибка сегментирования?


 

Member
Статус: Не в сети
Регистрация: 13.08.2005
A620 писал(а):
почему в linux'e при после ввода текста получается ошибка сегментирования?

А изначально ты его под что писал?

_________________
I L.A.W. you, baby!
For a GNU dawn! For freedom! :-)


 

L.A.W. писал(а):
A620 писал(а):
почему в linux'e при после ввода текста получается ошибка сегментирования?

А изначально ты его под что писал?

под линух(ASP Linux 11) и писал ассемблер nasm


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
Люди, несколько дней бился над проблемой так ничего и не понял...

Ситуация следующая, пишу прогу и в одном моменте мне надо считать с флопа в память сектор и когда читаю сектора с HDD всё работает (всё действие происходит в "Real Mode", знаю что разврат, но в данном случае в этом весь смысл)
Код:
MOV DX,адрес
MOV ES,DX
XOR BX,BX
MOV CX,0001
MOV DX,0080
MOV AX,0201
INT 13

Но мне надо читать с флопа по этому надо
Код:
MOV DX,0000

но почему-то не работает...

Судя по докам всё правильно
00 - Flop-A
01 - Flop-B
80 - HDD-1
81 - HDD-2
а на практике не работает...

Есть идеи ?

(в звязи со смертью бабушки я не скоро вернусь к написанию этой проги, но всёже если кто знает в чём проблема было бы не плохо)

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 28.08.2006
Помогите найти ошибку в программе, в теории должна работать но сваливается после Ввода "N" (Tasm и Tlink ошибок не выдают)
Код:
lab8 segment para public 'code'
assume cs:lab8,ds:lab8,es:lab8,ss:lab8
org 100h
begin: jmp start
msginn db 0ah,0dh,'Vvedite razmer masivov N:$'
msgina db 0ah,0dh,'Vvod masiva A:$'
msginb db 0ah,0dh,'Vvod masiva B:$'
msgindeg db 0ah,0dh,'Vvedite element massiva:$'
msgouta db 0ah,0dh,'Massiv A:$'
msgoutb db 0ah,0dh,'Massiv B:$'
msgouty db 0ah,0dh,'Rezult:$'
A dw 25 dup (0)
B dw 25 dup (0)
N dw ?
Y dw ?
inBuf db 06,00,5 dup(?)
outBuf db 7 dup(?),'$'
include bin2str.inc
include str2bin.inc

;процедура ввода масива
;перед вызовом в регистре ВХ адресс масива
;в регистре СХ - кол-во элементов
Input proc
xor si,si               ;обнулим индекс
cmp cx,1                ;проверим кол-во элементов
jl @2
@1:
push bx                 ;сохраним адрес масива
lea dx,msgindeg
mov ah,09h
int 21h
lea dx,inBuf
mov ah,0ah
int 21h
mov bx,dx
inc bx
call str2bin
pop bx
mov [bx][si],ax
add si,2
loop @1
@2:
ret
Input endp

;процедура вывода масива
;перед вызовом в регистре ВХ адрес массива
;в регистре СХ - кол-во элементов
Output proc
xor si,si
cmp cx,1
jl @7
@6:
mov ax,[bx][si]
push bx
lea bx,outBuf
call bin2str
lea dx,outBuf+1
mov ah,09h
int 21h
add si,2
pop bx
loop @6
@7:
ret
Output endp


start:
lea dx,msginn
mov ah,09h
int 21h
lea dx,inBuf
mov ah,0ah
int 21h
mov bx,dx
inc bx
call str2bin
mov N,ax

lea dx,msgina
mov a,09h
int 21h
mov cx,N
lea bx,A
call Input

lea dx,msginb
mov ah,09
int 21h
mov cx,N
lea bx,B
call Input

xor si,si
mov ax,N
mov cx,2
imul cx
mov di,ax
mov cx,N
@3:
mov ax,A[si]
mov bx,B[di]
imul bx
add ax,Y
mov Y,ax
loop @3

lea dx,msgouta
mov ah,09h
int 21h
mov cx,N
lea bx,A
call Output

lea dx,msgoutb
mov ah,09h
int 21h
mov cx,N
lea bx,B
call Output

lea dx,msgouty
mov ah,09h
int 21h
lea bx,Y
call Output

int 20h
lab8 ends
end begin



 

Member
Статус: Не в сети
Регистрация: 13.08.2005
Night.Elf.88 писал(а):
Помогите найти ошибку в программе, в теории должна работать но сваливается после Ввода "N"

А дебагером пробовал посмотреть?

_________________
I L.A.W. you, baby!
For a GNU dawn! For freedom! :-)


 

Member
Статус: Не в сети
Регистрация: 28.08.2006
L.A.W. ТурбоДебагером пробвал (взял его от старой Борланд Си) .... он вылитает с ошибкой... вернее его закрывает Виста... вот я не могу понять дело в Висте или вчем еще. Обычный дебагом не пробывал.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 641 • Страница 20 из 33<  1 ... 17  18  19  20  21  22  23 ... 33  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan