Article View: pl.comp.lang.asm
Article #2345Re: Segment
From: Bogdan (bogdro)
Date: Wed, 21 Jul 2010 16:21
Date: Wed, 21 Jul 2010 16:21
70 lines
3001 bytes
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-mailReferences:
<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