🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Tablica

#2302
From: przemo12146
Date: Wed, 21 Jul 2010 15:37
208 lines
8914 bytes
On 21 Lip, 16:21, "Remek" <ba...@tlen.pl> wrote:
> Użytkownik "Remek" napisał:
>
> > Zdecyduj się, który kod omawiamy i postaraj się odpowiadać na wszystkie
> >pytania. Oczywiście jeśli masz zamiar korzystać z moich rad.

> Trochę później masz w kodzie deklarację:
> wi dw 'Wi'
> Czyli dwa bajty. Próbowałeś to asemblować?

kod omawiany dotyczył mojej ostatniej wiadomości jeśli chodzi o ten
kod to tak próbowałem go zasemblować i zaraz po kompilacji
zdisasemblowałem co napisałem powyżej

On 11 Lip, 17:18, przemo12146 <przemo12...@gmail.com> wrote:
> 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ę.


> Oczywiście nie ma zamiaru. Typowy troll, albo nierozgarnięty dzieciak.
> Wydaje się, że to nie pierwszy jego występ.
>
> Remek


Ponieważ temat wydawał mi się zamknięty od dłuższego czasu nikt nie
odpowiadał a co do zmian i tak nie dawały odpowiedniego rezultatu.

Wydaje mi się że prowadzę rozmowę z inteligentnymi ludźmi więc
komentarze takiego typu są nie na miejscu co mnie nawet dziwi.
Technical Details
Message-ID: <8451d5c3-2f94-47ad-a489-0bc165b16e99@q35g2000yqn.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!q35g2000yqn.googlegroups.com!not-for-mail
References: hvlmqm$ljb$1@mx1.internetia.pl <acaaee6e-5908-471b-a309-b7146d718425@b35g2000yqi.googlegroups.com> <i17lng$7gb$1@inews.gazeta.pl> <337ec0e6-4d8b-4496-a792-4503ce94e063@k39g2000yqb.googlegroups.com> <i19ceh$ahu$1@inews.gazeta.pl> <92331df0-601e-4a00-bf14-d0874270720c@z8g2000yqz.googlegroups.com> <i1ql6t$375$1@inews.gazeta.pl> <b8539f6f-01d2-4776-a032-c06d7081be8e@d8g2000yqf.googlegroups.com> <i1t4jv$jf7$1@inews.gazeta.pl> <i26vov$a5a$2@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!q35g2000yqn.googlegroups.com!not-for-mail
From: przemo12146 <przemo12146@gmail.com>
Newsgroups: pl.comp.lang.asm
Subject: Re: Tablica
Date: Wed, 21 Jul 2010 08:37:48 -0700 (PDT)
Organization: http://groups.google.com
Lines: 242
Message-ID: <8451d5c3-2f94-47ad-a489-0bc165b16e99@q35g2000yqn.googlegroups.com>
References: hvlmqm$ljb$1@mx1.internetia.pl <acaaee6e-5908-471b-a309-b7146d718425@b35g2000yqi.googlegroups.com>  <i17lng$7gb$1@inews.gazeta.pl> <337ec0e6-4d8b-4496-a792-4503ce94e063@k39g2000yqb.googlegroups.com>  <i19ceh$ahu$1@inews.gazeta.pl> <92331df0-601e-4a00-bf14-d0874270720c@z8g2000yqz.googlegroups.com>  <i1ql6t$375$1@inews.gazeta.pl> <b8539f6f-01d2-4776-a032-c06d7081be8e@d8g2000yqf.googlegroups.com>  <i1t4jv$jf7$1@inews.gazeta.pl> <i26vov$a5a$2@inews.gazeta.pl>
NNTP-Posting-Host: 195.117.93.1
Mime-Version: 1.0
X-Trace: posting.google.com 1279726668 21665 127.0.0.1 (21 Jul 2010 15:37:48 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Wed, 21 Jul 2010 15:37:48 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: q35g2000yqn.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