🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Tablica

#2284
From: przemo12146
Date: Thu, 08 Jul 2010 18:54
178 lines
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-mail
References: hvlmqm$ljb$1@mx1.internetia.pl

Show 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