Article View: pl.comp.lang.asm
Article #2290Re: Tablica
From: Bogdan (bogdro)
Date: Fri, 09 Jul 2010 17:19
Date: Fri, 09 Jul 2010 17:19
114 lines
4121 bytes
4121 bytes
W dniu 08.07.2010 20:54, przemo12146 pisze:
> Witam wszystkich,
> o to mój przerobiony kod:
>
>
> format binary
>
> org 100h
>
> poczatek:
>
> mov word bx,[tablica+0]
> mov bx,wi
>
> mov word bx,[tablica+2]
> mov bx,ta
>
> mov word bx,[tablica+4]
> mov bx,is
>
> mov word bx,[tablica+6]
> mov bx,sw
>
> mov word bx,[tablica+8]
> mov bx,ie
>
> mov word bx,[tablica+10]
> mov bx,ci
>
> mov word bx,[tablica+12]
> mov bx,ew
>
> mov word bx,[tablica+14]
> mov bx,sd
>
> mov dx,tablica
> mov ah,09h
> int 21h
>
> mov ah,0h
> int 16h
>
> mov ax,4C00h
> int 21h
>
> tablica: times 16 db 255
> wi db 'Wi'
> ta db 'ta'
> is db 'j',20h
> sw db 'sw'
> ie db 'ie'
> ci db 'ci'
> ew db 'e!'
> sd db 20h,'$'
[...]
> seg000:0158 db 57h ; W
> seg000:0159 db 69h ; i
> seg000:015A db 74h ; t
> seg000:015B db 61h ; a
> seg000:015C db 6Ah ; j
> seg000:015D db 20h
> seg000:015E db 73h ; s
> seg000:015F db 77h ; w
> seg000:0160 db 69h ; i
> seg000:0161 db 65h ; e
> seg000:0162 db 63h ; c
> seg000:0163 db 69h ; i
> seg000:0164 db 65h ; e
> seg000:0165 db 21h ; !
> seg000:0166 db 20h
> seg000:0167 db 24h ; $
> seg000:0167 seg000 ends
> seg000:0167
> seg000:0167
> seg000:0167 end start
>
> 1.Ile bajtów zmieści się pod pozycją np: [tablica+0] ?, dokładniej
> chodzi mi o to, że w zmiennej "wi" są teraz 2 bajty ale równie dobrze
> mogę wpisać tam 16 bajtów a napis i tak zostanie wyświetlony, tylko
> tyle, że nie będą one znajdować się w tablicy.
Tak.
> Jeśli chciałbym żeby
> dodatkowe zmienne znajdowały się w tablicy musiałbym powiększyć ją o
> 16 i odpowiednio przypisać miejsca tak jak uprzednio.
Nie. Nie umieszczasz zmiennych w tablicy. Tablica jest zmienną i
możesz umieszczać w niej wartości. Czy wartości innych zmiennych, czy
po prostu jakieś stałe, nie ma to znaczenia.
Może nie zrozumiałem Cię dobrze, ale dla jasności: w tej chwili masz
tablicę 16 bajtów o wartości 255, a po niej (a nie w niej) masz
kolejne 16 bajtów z napisem. Tak, jakbyś w C napisał:
char tablica[16] = {255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255};
char wi[] = { 'W', 'i' };
...
char sd[] = { 20h, '$' };
Aby powiększyć zmienną "wi", nie musisz powiększać tablicy.
> 2.Czy to znaczy, że mogę do zmiennej "wi" przypisać aż 65536 bajtów
> czyli tyle ile ma rejestr bx?
Możesz przypisać tyle, na ile pozwoli Ci kompilator (biorąc pod uwagę
typ programu). Nie jest to ograniczone wielkością rejestru.
--
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:
<i17lng$7gb$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
hvlmqm$ljb$1@mx1.internetia.pl <acaaee6e-5908-471b-a309-b7146d718425@b35g2000yqi.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: Tablica Date: Fri, 09 Jul 2010 19:19:38 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 114 Message-ID: <i17lng$7gb$1@inews.gazeta.pl> References: hvlmqm$ljb$1@mx1.internetia.pl <acaaee6e-5908-471b-a309-b7146d718425@b35g2000yqi.googlegroups.com> NNTP-Posting-Host: rudy.mif.pg.gda.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1278695987 7691 153.19.42.16 (9 Jul 2010 17:19:47 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Fri, 9 Jul 2010 17:19:47 +0000 (UTC) X-User: bog.d In-Reply-To: <acaaee6e-5908-471b-a309-b7146d718425@b35g2000yqi.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