'어셈블리'에 해당되는 글 4건

  1. 2010.05.03 어셈블리 메모리 참조 (x86 memory addressing)
  2. 2010.05.03 어셈블리 언어
  3. 2010.04.17 어셈블리 언어 기본 템플릿
  4. 2009.03.19 어셈블리 언어 ORG 명령 (4)
2010/04/22 - [Programming/C / Win32 / MFC] - 변수인데 왜 operation on 'variable' may be undefined 야?

디스어셈블된 내용중에
lea         edi,[ebp-48h]
이러한 부분이 있었는데 []의 의미를 몰랐다가 이제서야 찾아본다.
[]는 C언어의 []와 유사하게 그 변수의 내용을 메모리 번지로 해석해서 그 번지의 내용을 받아오는 연산자이다.
그러니까 ebp의 내용에서 0x48을 뺀 주소를 edi에 저정하라는 의미이다. (LEA)

LEA--Load Effective Address

Opcode

Instruction

Description

8D /r

LEA r16,m

Store effective address for m in register r16

8D /r

LEA r32,m

Store effective address for m in register r32


[링크 : http://www.intel.com/software/.../instruct32_hh/vc150.htm]

8.9.6 메모리 참조
------------------

  인텔문법에서 메모리를 간접적으로 참조하는 형식은 다음과 같다.
    SECTION:[BASE + INDEX*SCALE + DISP]
  이것은 다음과 같은 AT&T 방식으로 참조된다.
    SECTION:DISP(BASE, INDEX, SCALE)

[링크 : http://vozlt.tistory.com/8]

신고

'Programming > Assembly(어셈블리)' 카테고리의 다른 글

.DATA? 지시어  (0) 2011.07.31
x86 register  (2) 2011.07.17
PowerPC(PPC) 어셈관련 내용  (0) 2011.04.04
어셈블리 메모리 참조 (x86 memory addressing)  (0) 2010.05.03
어셈블리 언어  (0) 2010.05.03
어셈블리 언어 기본 템플릿  (0) 2010.04.17
Posted by 구차니

댓글을 달아 주세요


[링크 : http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/toc.html]
[링크 : http://sourceware.org/binutils/docs-2.19/as/]
[링크 : http://tigcc.ticalc.org/doc/gnuasm.html]
신고

'Programming > Assembly(어셈블리)' 카테고리의 다른 글

.DATA? 지시어  (0) 2011.07.31
x86 register  (2) 2011.07.17
PowerPC(PPC) 어셈관련 내용  (0) 2011.04.04
어셈블리 메모리 참조 (x86 memory addressing)  (0) 2010.05.03
어셈블리 언어  (0) 2010.05.03
어셈블리 언어 기본 템플릿  (0) 2010.04.17
Posted by 구차니

댓글을 달아 주세요

음.. 역시 모든 언어는 skeleton code를 외우면 상대적으로 익히기가 쉬운듯!
(문득 C언어 배울때 #include <stdio.h> void main() {} 하던 기억이.. OTL)

.386
.MODEL Flat, STDCALL
.DATA
; Your initialized data. <comment>
.DATA?
;Your uninitialized data. <comment>
.CONST
.CODE
label:
    end label

[링크 : http://win32assembly.online.fr/tut1.html]

신고

'Programming > Assembly(어셈블리)' 카테고리의 다른 글

.DATA? 지시어  (0) 2011.07.31
x86 register  (2) 2011.07.17
PowerPC(PPC) 어셈관련 내용  (0) 2011.04.04
어셈블리 메모리 참조 (x86 memory addressing)  (0) 2010.05.03
어셈블리 언어  (0) 2010.05.03
어셈블리 언어 기본 템플릿  (0) 2010.04.17
Posted by 구차니

댓글을 달아 주세요

The ORG command is a standard (almost universal) command that tells the assembler where the program is to reside in memory

ORG 명령어는 메모리에 상주할 프로그램의 주소를 알려준다고 되어 있는데,
JMP 와는 다른 듯 한데 무슨 차이일려나..

[출처 :  www.ordersomewherechaos.com/rosso/fetish/m102/web100/docs/assemb-tutorial.html]
링크가 깨져, 구글에서 저장된 페이지로 보시기 바랍니다.


23. ORG
Label     Operation   Operand
optional     ORG      expression

The ORG directive instructs the assembler to continue the assembly from the
memory location specified by the operand. The operand must be an expression
that can be immediately evaluated, and its value must be a valid address (i.e., it
cannot be negative). Thus the operand can be a number, a known symbol, or an
expression that can be evaluated by the assembler at this point. Such an operand
is called “definable.”

[출처 : http://www.davidsalomon.name/assem.advertis/asl.pdf]


ORG expression
Sets the location counter to expression.
[출처 : MASM reference]
신고
Posted by 구차니

댓글을 달아 주세요

  1. 해석이라도 좀 해주시지... 귀찮네 ㅋㅋ
    단어들이 생소하네요.
    -ㅅ-;;

    2009.03.19 19:21 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 저 ORG가 머의 약자인지 찾을려고 했는데 나오지도 않아서 포기했어요 ㅋㅋ

      어셈블리 명령어인데, 메모리 번지를 바꾸어주는 역활을 한다는데 정확하게 이해를 못하겠더라구요

      2009.03.19 19:24 신고 [ ADDR : EDIT/ DEL ]
  2. Chiwoo

    에ㅔ... ORG라... 학부때만 써봐서 가물가물 하지만 어셈블리 프로그래밍할때 맨처음 시작주소(ORiGin)를 몇번지로하겠다. 이런거 아닌가요. 프로그램 맨 위에

    ORG 0x0100
    LDA 100
    ADD 200
    STA 0x3100

    이런식으로 넣으면 LDA 100이 0x0100 번지에 저장되고 맨처음 부팅하면 0100번지부터 읽어서 시작하는......

    음... 예전일이라 틀릴 수도 있음을 감안해주시길 / :)

    2009.06.23 23:28 신고 [ ADDR : EDIT/ DEL : REPLY ]