🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #2345

Re: Segment

#2345
From: Bogdan (bogdro)
Date: Wed, 21 Jul 2010 16:21
70 lines
3001 bytes
W dniu 20.07.2010 19:04, przemo12146 pisze:

[...]

> Wracając do tematu jak miałby wyglądać czysto teoretycznie kod który
> realizuje proste założenie a mianowicie do pierwszego adresu pamięci
> ładuje wartość 11111111b

	mov	ax, 0		; lub "xor ax, ax"
	mov	ds, ax
	mov	byte [ds:0], 0FFh

> później wykonywany jest skok pod ostatni
> adres pamięci i tam wartość zmieniana jest na 11111111b tak jak wyżej,

 Mówisz: "skok". Chcesz najpierw skoczyć pod ostatni adres, po czym
zmieniać kod, który tam akurat jest? Jeśli mówisz po prostu o zmianie
danych pod tym "ostatnim adresem", bez skakania (przenoszenia
działania programu pod inny adres), to wystarczy takie coś:

	mov	ax, 0FFFFh
	mov	ds, ax
	mov	byte [ds:0FFFFh], 0FFh


> później następuje inkrementacja rejestrów które zawierają adres
> początkowy następnie wykonywana jest dekrementacja rejestrów które
> zawierają adres końcowy i znowu pod adres zwiększony i zmniejszony
> wpisywana jest wartość 11111111b tu chyba przydałaby się jakaś pętla
> aż do "środka" pamięci gdzie "środkowa" wartość zostaje wyzerowana a
> program kończy działanie wychodząc.

 Mówisz o czymś w postaci poniższego kodu?

	mov	ax, 0		; lub "xor ax, ax"
	mov	ds, ax
	mov	byte [ds:1], 0FFh

	mov	ax, 0FFFFh
	mov	ds, ax
	mov	byte [ds:0FFFEh], 0FFh

 Można oczywiście, jak najbardziej używać rejestrów zamiast sztywnych
offsetów, np.

	mov	ax, 0
	mov	ds, ax
	mov	ax, 0FFFFh
	mov	es, ax

	mov	bx, 0
	mov	byte [ds:bx], 0FFh
	mov	bx, 1
	mov	byte [ds:bx], 0FFh

	[itd...]

	mov	si, 0FFFFh
	mov	byte [es:si], 0FFh
	mov	si, 0FFFEh
	mov	byte [es:si], 0FFh

	[itd...]


-- 
Pozdrawiam/Regards - Bogdan                     (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID: <i276pt$cjc$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <31bb59d9-27ca-40ee-8864-a9199b992fc9@q12g2000yqj.googlegroups.com> <i24h2n$mng$1@inews.gazeta.pl> <a007c5ea-8170-429a-bce7-415b0c999466@e5g2000yqn.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: Segment
Date: Wed, 21 Jul 2010 18:21:16 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 70
Message-ID: <i276pt$cjc$1@inews.gazeta.pl>
References: <31bb59d9-27ca-40ee-8864-a9199b992fc9@q12g2000yqj.googlegroups.com>  <i24h2n$mng$1@inews.gazeta.pl> <a007c5ea-8170-429a-bce7-415b0c999466@e5g2000yqn.googlegroups.com>
NNTP-Posting-Host: rudy.mif.pg.gda.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1279729279 12908 153.19.42.16 (21 Jul 2010 16:21:19 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Wed, 21 Jul 2010 16:21:19 +0000 (UTC)
X-User: bog.d
In-Reply-To: <a007c5ea-8170-429a-bce7-415b0c999466@e5g2000yqn.googlegroups.com>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.4) Gecko/20100608 Thunderbird/3.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit