Article View: pl.comp.lang.asm
Article #2284Re: Tablica
From: przemo12146
Date: Thu, 08 Jul 2010 18:54
Date: Thu, 08 Jul 2010 18:54
178 lines
6343 bytes
6343 bytes
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,'$' teraz już wszystko dział a zmienne znajdują się w tablicy, sprawdzałem w debuggerze "IDA Pro 4.9", a to disasemblacja powyższego kodu: seg000:0100 ; Format : MS-DOS COM-file seg000:0100 ; Base Address: 1000h Range: 10100h-10168h Loaded length: 68h 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 public start seg000:0100 start proc near seg000:0100 mov bx, word_10148 seg000:0104 mov bx, 158h seg000:0107 mov bx, word_1014A seg000:010B mov bx, 15Ah seg000:010E mov bx, word_1014C seg000:0112 mov bx, 15Ch seg000:0115 mov bx, word_1014E seg000:0119 mov bx, 15Eh seg000:011C mov bx, word_10150 seg000:0120 mov bx, 160h seg000:0123 mov bx, word_10152 seg000:0127 mov bx, 162h seg000:012A mov bx, word_10154 seg000:012E mov bx, 164h seg000:0131 mov bx, word_10156 seg000:0135 mov bx, 166h seg000:0138 mov dx, 148h seg000:013B mov ah, 9 seg000:013D int 21h ; DOS - PRINT STRING seg000:013D ; DS:DX -> string terminated by "$" seg000:013F mov ah, 0 seg000:0141 int 16h ; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY seg000:0141 ; Return: AH = scan code, AL = character seg000:0143 mov ax, 4C00h seg000:0146 int 21h ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT) seg000:0146 start endp ; AL = exit code seg000:0146 seg000:0146 ; ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| seg000:0148 word_10148 dw 0FFFFh ; DATA XREF: start r seg000:014A word_1014A dw 0FFFFh ; DATA XREF: start +7 r seg000:014C word_1014C dw 0FFFFh ; DATA XREF: start +E r seg000:014E word_1014E dw 0FFFFh ; DATA XREF: start +15 r seg000:0150 word_10150 dw 0FFFFh ; DATA XREF: start +1C r seg000:0152 word_10152 dw 0FFFFh ; DATA XREF: start +23 r seg000:0154 word_10154 dw 0FFFFh ; DATA XREF: start +2A r seg000:0156 word_10156 dw 0FFFFh ; DATA XREF: start +31 r 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. 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. 2.Czy to znaczy, że mogę do zmiennej "wi" przypisać aż 65536 bajtów czyli tyle ile ma rejestr bx? 3.Po ile tranzystorów mają rejestry (np:eax,ebx...) ?
Technical Details
Message-ID:
<acaaee6e-5908-471b-a309-b7146d718425@b35g2000yqi.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!feeder.news-service.com!postnews.google.com!b35g2000yqi.googlegroups.com!not-for-mailReferences:
hvlmqm$ljb$1@mx1.internetia.plShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!feeder.news-service.com!postnews.google.com!b35g2000yqi.googlegroups.com!not-for-mail From: przemo12146 <przemo12146@gmail.com> Newsgroups: pl.comp.lang.asm Subject: Re: Tablica Date: Thu, 8 Jul 2010 11:54:49 -0700 (PDT) Organization: http://groups.google.com Lines: 185 Message-ID: <acaaee6e-5908-471b-a309-b7146d718425@b35g2000yqi.googlegroups.com> References: hvlmqm$ljb$1@mx1.internetia.pl NNTP-Posting-Host: 195.117.93.1 Mime-Version: 1.0 X-Trace: posting.google.com 1278615293 429 127.0.0.1 (8 Jul 2010 18:54:53 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 8 Jul 2010 18:54:53 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: b35g2000yqi.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