Article View: pl.comp.lang.asm
Article #2296Re: Tablica
From: przemo12146
Date: Sun, 11 Jul 2010 15:18
Date: Sun, 11 Jul 2010 15:18
182 lines
6547 bytes
6547 bytes
Po kompilacji kodu: format binary org 100h poczatek: mov bx,[wi] mov word [tablica+0],bx mov bx,[ta] mov word [tablica+2],bx mov bx,[is] mov word [tablica+4],bx mov bx,[sw] mov word [tablica+6],bx mov bx,[ie] mov word [tablica+8],bx mov bx,[ci] mov word bx,[tablica+10] mov bx,[ew] mov word bx,[tablica+12] mov bx,[sd] mov word [tablica+14],bx mov dx,tablica mov ah,09h int 21h mov ah,0h int 16h mov ax,4C00h int 21h tablica: times 16 db 255 wi dw 'Wi' ta dw 'ta' is dw 'j',20h sw dw 'sw' ie dw 'ie' ci dw 'ci' ew dw 'e!' sd dw 20h,'$' oraz po różnych jego modyfikacjach doradzonych przez "Bogdana" i "Kicera" jak i moich chcąc się upewnić że zmienne znajdują się w tablicy zdisasemblowałem "program" debuggerem "IDA Pro 4.9 Freeware" a oto wynik jego działania: seg000:0100 ; Format : MS-DOS COM-file seg000:0100 ; Base Address: 1000h Range: 10100h-10174h Loaded length: 74h seg000:0100 seg000:0100 .686p seg000:0100 .mmx seg000:0100 .model tiny seg000:0100 seg000:0100 ; =========================================================================== seg000:0100 seg000:0100 ; Segment type: Pure code seg000:0100 seg000 segment byte public 'CODE' use16 seg000:0100 assume cs:seg000 seg000:0100 org 100h seg000:0100 assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing seg000:0100 seg000:0100 ; --------------- S U B R O U T I N E ------------------------------------ --- seg000:0100 seg000:0100 seg000:0100 start proc near seg000:0100 mov bx, word_10160 seg000:0104 mov word_10150, bx seg000:0108 mov bx, word_10162 seg000:010C mov word_10152, bx seg000:0110 mov bx, word_10164 seg000:0114 mov word_10154, bx seg000:0118 mov bx, word_10168 seg000:011C mov word_10156, bx seg000:0120 mov bx, word_1016A seg000:0124 mov word_10158, bx seg000:0128 mov bx, word_1016C seg000:012C mov bx, word_1015A seg000:0130 mov bx, word_1016E seg000:0134 mov bx, word_1015C seg000:0138 mov bx, word_10170 seg000:013C mov word_1015E, bx seg000:0140 mov dx, 150h seg000:0143 mov ah, 9 seg000:0145 int 21h ; DOS - PRINT STRING seg000:0145 ; DS:DX -> string terminated by "$" seg000:0147 mov ah, 0 seg000:0149 int 16h ; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY seg000:0149 ; Return: AH = scan code, AL = character seg000:014B mov ax, 4C00h seg000:014E int 21h ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT) seg000:014E start endp ; AL = exit code seg000:014E seg000:014E ; ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| seg000:0150 word_10150 dw 0FFFFh ; DATA XREF: start +4 w seg000:0152 word_10152 dw 0FFFFh ; DATA XREF: start +C w seg000:0154 word_10154 dw 0FFFFh ; DATA XREF: start +14 w seg000:0156 word_10156 dw 0FFFFh ; DATA XREF: start +1C w seg000:0158 word_10158 dw 0FFFFh ; DATA XREF: start +24 w seg000:015A word_1015A dw 0FFFFh ; DATA XREF: start +2C r seg000:015C word_1015C dw 0FFFFh ; DATA XREF: start +34 r seg000:015E word_1015E dw 0FFFFh ; DATA XREF: start +3C w seg000:0160 word_10160 dw 6957h ; DATA XREF: start r seg000:0162 word_10162 dw 6174h ; DATA XREF: start +8 r seg000:0164 word_10164 dw 6Ah ; DATA XREF: start +10 r seg000:0166 db 20h seg000:0167 db 0 seg000:0168 word_10168 dw 7773h ; DATA XREF: start +18 r seg000:016A word_1016A dw 6569h ; DATA XREF: start +20 r seg000:016C word_1016C dw 6963h ; DATA XREF: start +28 r seg000:016E word_1016E dw 2165h ; DATA XREF: start +30 r seg000:0170 word_10170 dw 20h ; DATA XREF: start +38 r seg000:0172 db 24h ; $ seg000:0173 db 0 seg000:0173 seg000 ends seg000:0173 seg000:0173 seg000:0173 end start dochodzę do wniosku, że próby zmiany wielkości uprzednio zadeklarowanych zmiennych w tablicy nie mają sensu ponieważ nie przynosi to pożądanego efektu, a co za tym idzie programista sam jest odpowiedzialny między innymi za ich rozmiar więc skoro wcześniej zmienna została już zainicjowana konkretnym rozmiarem to nie można tego zmienić później (dla mnie jest to dość logiczne jeśli chcieliśmy zmienną o innym rozmiarze trzeba było zrobić to wcześniej lub dopisać sobie dodatkową) no chyba że się mylę.
Technical Details
Message-ID:
<b5eb2851-c397-41a8-9cac-6f923b13a139@c33g2000yqm.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!c33g2000yqm.googlegroups.com!not-for-mailReferences:
<92331df0-601e-4a00-bf14-d0874270720c@z8g2000yqz.googlegroups.com> <i1br8b$l4g$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!c33g2000yqm.googlegroups.com!not-for-mail From: przemo12146 <przemo12146@gmail.com> Newsgroups: pl.comp.lang.asm Subject: Re: Tablica Date: Sun, 11 Jul 2010 08:18:56 -0700 (PDT) Organization: http://groups.google.com Lines: 188 Message-ID: <b5eb2851-c397-41a8-9cac-6f923b13a139@c33g2000yqm.googlegroups.com> References: <92331df0-601e-4a00-bf14-d0874270720c@z8g2000yqz.googlegroups.com> <i1br8b$l4g$1@inews.gazeta.pl> NNTP-Posting-Host: 195.117.93.1 Mime-Version: 1.0 X-Trace: posting.google.com 1278861536 30950 127.0.0.1 (11 Jul 2010 15:18:56 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sun, 11 Jul 2010 15:18:56 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: c33g2000yqm.googlegroups.com; posting-host=195.117.93.1; posting-account=vJlzHgoAAAB4VQEIaOfBd-KwI2yffTmo User-Agent: G2/1.0 X-HTTP-UserAgent: Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.6.30 Version/10.60,gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit