HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #41  
Старый 25.06.2007, 12:01
x-treem
Участник форума
Регистрация: 08.11.2006
Сообщений: 167
Провел на форуме:
539434

Репутация: 54
Отправить сообщение для x-treem с помощью ICQ
По умолчанию

у мну лам проблем.

имеется такой код на масм:

Код:
.DATA 
Buff db 100

.code
start:
mov [Buff], byte "A"
end start:
надо вообщем в буффер вставить А.
но ошибка.
помогите пожалуйсто

Последний раз редактировалось De-visible; 29.04.2008 в 01:24..
 
Ответить с цитированием

  #42  
Старый 25.06.2007, 12:08
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 x-treem тебе нужно весь буфер забить символом A?
Если а то вот код на FASM

Код:
xor edi,edi
m:
mov [Buff+edi], byte "A"
inc edi
cmp edi,100
jbe m
я с масм не работал, поэтому незнаю прокатит
mov [Buff+edi], byte "A" или нет.
Ты попробуй сделать так:
Код:
xor edi,edi
lea ebx,buff 
mov al,"A"

m:
mov [ebx+edi], byte al
inc edi
cmp edi,100
jbe m

Последний раз редактировалось slesh; 25.06.2007 в 12:13..
 
Ответить с цитированием

  #43  
Старый 25.06.2007, 12:11
x-treem
Участник форума
Регистрация: 08.11.2006
Сообщений: 167
Провел на форуме:
539434

Репутация: 54
Отправить сообщение для x-treem с помощью ICQ
По умолчанию

не, мне нуна добавлять туда символы.
сначала например А
потом Hello
потом puki

а потом вывести в мессаджбоксе
 
Ответить с цитированием

  #44  
Старый 25.06.2007, 12:13
iv.
Познавший АНТИЧАТ
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

2x-treem:
Если мне не изменяет память, так работать с памятью нельзя. Надо через регистры.
Типа:
mov AL, byte "A"
mov [Buff], AL
 
Ответить с цитированием

  #45  
Старый 25.06.2007, 12:16
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Цитата:
Сообщение от x-treem  
не, мне нуна добавлять туда символы.
сначала например А
потом Hello
потом puki

а потом вывести в мессаджбоксе
Ну тогда юзай АПИ функцию
Код:
mov [Buff], 0

invoke lstrcat,[Buff],'HELLO'  ; добавить данные к буферу
 
Ответить с цитированием

  #46  
Старый 25.06.2007, 12:23
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

iv. с памятью можно так работать, это же не из одного места памяти в другое, это в область памяти число пересылается... команда mov - это сделать в силах! mov Buff, "A"

x-treem
Код:
.386  
.model  flat, stdcall  
option  casemap:none  
   
.DATA?   
Buff db 100 dup(?)   
 
.code  
start:  
mov [Buff], "A"  
ret  
end start
Нужно было обьявить правильно буфер "Buff db 100 dup(?)" + "end start:" - двоеточие не нужно...

P.S. x-treem Символы добавляются откуда? из DATA или просто в коде по штуке? или тебе сразу строку можно в буфер положить?

Последний раз редактировалось xqwerx; 25.06.2007 в 12:25..
 
Ответить с цитированием

  #47  
Старый 25.06.2007, 12:29
x-treem
Участник форума
Регистрация: 08.11.2006
Сообщений: 167
Провел на форуме:
539434

Репутация: 54
Отправить сообщение для x-treem с помощью ICQ
По умолчанию

у мну lstrcat не работает. то естьвот

Цитата:
.DATA

Buff db 100

.CODE

start:

mov al, "И"
mov [Buff], al
xor al,al
mov al, "з"
add [Buff+1], al
add [Buff+2], al
mov [Buff], 0
invoke lstrcat,[Buff],"HELL"
invoke MessageBox, 0, addr Buff, addr Buff, MB_OK
invoke ExitProcess, NULL
end start
и нету мессадж бокса. да и вообще только 4 символа можно добавить
что тут не так?
 
Ответить с цитированием

  #48  
Старый 25.06.2007, 12:43
GoreMaster
Участник форума
Регистрация: 28.05.2007
Сообщений: 125
Провел на форуме:
638513

Репутация: 103
По умолчанию

Цитата:
invoke lstrcat,[Buff],"HELL"
"HELL" должна быть определена в .data как строка
---------Пример функции lstrcat----------------
.data
hell db "HELL",0
.code
invoke lstrcat,addr Buff,addr hell
------------------Работа с символами-------------------
lea edi, Buff
mov al, "и"
mov byte ptr ds:[edi] , al
xor al,al
inc edi
mov al,"з"
mov byte ptr ds:[edi] ,al

имхо так

Последний раз редактировалось GoreMaster; 25.06.2007 в 12:50..
 
Ответить с цитированием

  #49  
Старый 25.06.2007, 12:46
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

x-treem Если ты пишешь на masm'e то все данные в виде строк и т.д. нужно хранить в .data ,а буферы в .data? ... В fasm'e немного по другому...
Код:
;###################################################

      .386
      .model flat, stdcall
      option casemap :none   ; case sensitive

;###################################################

      include C:\masm32\include\windows.inc
      include C:\masm32\include\user32.inc
      include C:\masm32\include\kernel32.inc

      includelib C:\masm32\lib\user32.lib
      includelib C:\masm32\lib\kernel32.lib  

;###################################################

.DATA 
Buff	db 100 dup(?)
szMsg	db "Hello",0

;###################################################

.code
start:
	mov Buff, "A"
	invoke MessageBox, 0, ADDR Buff, ADDR Buff, 40h 

	invoke MessageBox, 0, ADDR szMsg, ADDR szMsg, 40h

	invoke lstrcpy, ADDR Buff, ADDR szMsg 
	invoke MessageBox, 0, ADDR Buff, ADDR Buff, 40h 

	invoke ExitProcess, 0
end start

;###################################################
Некоторые приемы вывода в Мессаге...
 
Ответить с цитированием

  #50  
Старый 04.07.2007, 13:03
Tikson
Постоянный
Регистрация: 09.10.2005
Сообщений: 333
Провел на форуме:
1387660

Репутация: 74
По умолчанию

как обычно компилю тасмом com программу
--------------------код------------------------
cseg segment
assume cs:cseg, ds:cseg,es:cseg,ss:cseg
org 100h
start:
mov ax, 0b800h
mov es,ax
mov di, 0

mov ah,31
mov al, 1
mov es:[di], ax
mov ax, 10h
int 16h
int 20h
cseg ends
end start
--------------------код------------------------
tasm program.asm
tlink program.obj/t/x

все ок(тасм ошибок никаких не выдает) , запускаю из командной строчки и программа виснет(ОС не виснет) , смайлик не выводится.... хотя раньше выводился. В чем может быть проблема?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы для новичков! (faq) PEPSICOLA С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 92 14.05.2010 17:59
ОС с нуля z01b С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 36 03.07.2008 15:30



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ