[어셈블리어] 문제를 이해를 못해서요 ㅜㅜ...

kknd345의 이미지

최근에 어셈블리어 배우고 있는데 모르는게 많어서요 ㅜㅜ..

문제에 이 문장이 있는데요
locates the cursor near the middle of the screen.

개행 문자는 0dh,0ah 이런식으로 하면 된다고 들었는데요
(0dh 가 줄 처음인가요? 개행인가요? )
화면 가운데로 바로 가는 명령어가 있나요?

그리고

Tempstr "abcdefg",0 

mov edx, OFFSET Tempstr

여기서 오프셋은 왜 써주는 건가요?
그냥 바로 mov eax, Tempstr 이렇게 해주면 안 되나요?

마지막은 문제인데요... 감이 잘 안 와서요.
Write a program that displays a single character at 100 random screen locations. Optional : use a randomized delay between characters, between 10 and 300 milliseconds. 인데요.
문제를 어떻게 해결 해야 할지 모르겠습니다. 대충 어떻게 하면 되겠다고 설명만 해주셔도 고맙겠습니다 ^^

IsExist의 이미지

0x0D : CR(캐리지 리턴), 0x0A: NL(뉴라인)

OFFSET은 현재 세그먼트에서의 오프셋값만 얻어 올겁니다. 어셈블리어가 저렇게
생겨먹었나 그래요. 하이레벨 언어는 변수명이 주소개념이지만. 좀더 하위 레벨이라서 그럴겁니다. 세그먼트가 다르면 세그먼트만 얻어오는 것도 있을 겁니다.

일단 매크로로 또는 서브루틴으로 화면의 임의의 위치에 문자 하나 찍는걸 짜고
이걸 호출하는 루프를 만드세요. 루프돌때 랜덤으로 딜레이(어셈블러로 sleep 코드를 만들 수 있나.. 기억이 안나네요. 슬립 인터럽터가 있던가.. 아님 알람 인터럽터)

---------
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

urmajest의 이미지

1. 0A가 개행(Line feed)
0D가 줄처음(carraige return) 입니다.

2. 커서를 화면의 특정 위치로 옮기는 건,

Intel x86의 경우 INT 10H (02H)로 가능합니다.

3. OFFSET operator를 안 쓰려면 LEA로 하시면 됩니다.

4. 그 문제에서 locate하는 것은 위에서 설명한대로 INT 10H (02H)

로 해결하시면 되고 time delay는 제가 기억하기로 BIOS 영역에서

CPU tick을 저장하는 부분을 읽어서 그 차이로 계산했던 것 같네요.

그리고 이 모든게 책을 찾아보시면 됩니다.

제가 가지고 있는 책은 IBM PC assembly language and programming, 5th ed, Peter Abel 이네요.

질문하시기 전에 intel manual에서라도 한번 찾아보시길 권합니다.

영어가 어려우시다면...그냥 질문하세요 ^^

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.