【问题标题】:Assembly - Writing Text In A Certain Location To Display On DOSBox汇编 - 在特定位置写入文本以在 DOSBox 上显示
【发布时间】:2016-05-31 14:26:52
【问题描述】:

我目前正在开发一款名为“4 In A Row”的游戏。我正在尝试编写游戏说明,以便在加载游戏时出现在 DOSBox 上。我想在屏幕上的某个位置显示它,但我不知道该怎么做。

http://i.imgur.com/EjulgBV.png

我已经概述了说明的代码。

非常感谢任何可以帮助我的人。

代码:

inst1 db 'To drop a disc into one of the columns press: 1, 2, 3 or 4.',13,10,'$'

    Instructions1:
        lea dx, [inst1]
        mov dx, offset inst1
        mov ah, 9
        int 21h

【问题讨论】:

  • 我编辑了我的主题。现在可以看到图片和代码了吗?
  • 很遗憾,我无法发布图片和代码,因为我是这个网站的新手,因此我的声誉不到 10。
  • 代码为纯文本,复制粘贴,选中,点击大括号按钮格式化。
  • 你试过int 10h函数02h“设置光标位置”吗?
  • 我再次编辑了我的主题。感谢您的帮助和耐心:)。

标签: string assembly text tasm dosbox


【解决方案1】:

在显示文本之前尝试“gotoxy”

inst1 db 'To drop a disc into one of the columns press: 1, 2, 3 or 4.',13,10,'$'

;SET CURSOR POSITION (GOTOXY).
  MOV  DL, 20    ;SCREEN COLUMN.
  MOV  DH, 5     ;SCREEN ROW.
  MOV  AH, 2     ;SERVICE TO SET CURSOR POSITION.
  MOV  BH, 0     ;PAGE NUMBER.
  INT  10H       ;BIOS SCREEN SERVICES.

Instructions1:
    lea dx, [inst1]
    mov dx, offset inst1
    mov ah, 9
    int 21h

【讨论】:

  • 注意lea dx, [inst1]不是必须的,dx通过下面的指令正确加载。
【解决方案2】:

当我无法检查我的工作时,我应该谨慎回答 StackOverflow 问题。但是凭记忆...

我相信您想使用AH = 2 调查Int 10h。在英语中,您要先设置光标位置,然后再调用 21h 在该位置写入 STDOUT。

我希望这能让你走上正确的道路!

【讨论】:

  • 感谢您的帮助,但我不知道如何使用它。能给我看看吗?
  • 看起来 Jose 打败了我。他的代码就是你要找的。祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 2022-11-30
  • 2017-11-09
  • 2020-09-07
相关资源
最近更新 更多