간단한 프로그램중에서 ㅡ.ㅡ

judaspro의 이미지

어느 책에 보니까

extern int far *stack;

정렬할때 헤더파일에 포함되어 있는 문장입니다.

이곳이 에러가 나는데 에러를 수정하는 것 보단...

위에 문장이 이해가 안갑니다.

솔직히 처음 보는 문장입니다.

이문장에 대해서 설명좀 해주시면 감사합니다.

제가 가지고 있는 책에는 저 부분에 대한 설명이 나와있지를 않네요.

그럼 즐거운 하루 되세요.

ㅡ,.ㅡ;;의 이미지

원거리포인터 stack가 어디엔가에 있다.. 란뜻이죠.


----------------------------------------------------------------------------

cinsk의 이미지

흠.. 예전에 16bit DOS 시절에 far pointer니, near pointer이니.. 하는 것들이
나왔었죠.

지금은 거의 쓰이지 않습니다. (DOS용 프로그램을 제작한다면 모를까)

x86 real mode에서는 주소를

segment:offset (16bit << 4 + 16bit = 20 bit)으로 표현합니다.

제 기억이 맞다면, offset만을 가진 것을 near pointer라 하고,
segment:offset으로 표현된 20bit 주소를 far pointer라고 합니다.

보통은 (아무것도 쓰지 않고) near pointer를 쓰고, BIOS 제어 등과 같이
절대 메모리 주소가 필요한 경우, far pointer를 씁니다. 물론 써야할 메모리
공간이 매우 클 경우에도 far pointer를 씁니다.

x86 real mode에서
segment를 저장하는 register는 CS, DS, ES (, FS 등)으로,
16bit입니다.

offset을 저장하는 register는 대개 AX, BX, CX, DX, SI, DI 등입니다.
마찬가지로 16bit입니다.

후에 32bit CPU가 나오면서 이름이 EAX, EBX등으로 바뀌었지만,
지금 여기서는 필요없는 정보같군요.

특별히 x86계열의 embedded programming을 하신다거나 예전 DOS용
프로그램을 작성하신다면 모를까, 무시하고 건너 뛰어도 좋을 것 같다는
생각이 듭니다. 어차피 C 표준도 아니니까요.

x86 계열에 대해 좀 더 자세히 알고 싶으시다면,

IA-32 Intel Architecture Software Developer's Manual Volume 1을
보시기 바랍니다. PDF 문서로, http://www.intel.com/design/Pentium4/manuals/에서 받아 볼 수
있습니다.

그럼 이만.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.