【问题标题】:How do I change the designs of ascii codes in 8086 assembly?如何更改 8086 汇编中的 ascii 代码设计?
【发布时间】:2015-08-06 09:34:26
【问题描述】:

我试图重新定义字符的外观(在这种情况下根据希伯来字母表)。在这一部分中,我想将“k”(ascii 6bh)更改为类似于这个 ל。

.model 小 .stack 200h

;包含程序中使用的所有变量的数据段 。数据 Lamed db 30h, 30h, 30h, 3fh, 3h, 3h, 3h, 6h, 0ch, 18h, 30h 。代码 开始: 移动斧头,@data

mov es, ax mov ax, 1110h mov bh, 14h mov bl, 1h mov cx, 1h mov dx, 6bh push bp mov bp, offset Lamed int 10h pop bp mov ah, 02h mov dl, 6bh int 21h mov ax, 4c00h int 21h end Start

如果有预定义的希伯来语字母表会有所帮助。

【问题讨论】:

  • 谷歌搜索“代码页”。肯定有一个有希伯来字符的。
  • 原来是代码页 862。
  • 感谢您提供的信息丰富的回答。我想知道如何将代码页更改为 862?
  • 您可能想探索“MODE”命令的多种用途。查阅任何好的 DOS 手册。

标签: assembly character-encoding x86-16 hebrew tasm


【解决方案1】:
  • 最好不要使用函数 1110h(它也会改变高度)!最好坚持使用功能 1100h。

  • 通过mov bl, 1h,您已要求字体块 1。但大多数字体块 0 是活动字体块。最好改变这一点。

  • 您在 Lamed 处仅定义了 11 个字节的数据。但是您已指示 BIOS 使用 mov bh, 14h 检索 20 个字节。这显然行不通。
    如果这是标准 80x25 文本视频,则使用值 16 并用额外的零表示的空间填充数据。

你可以写:

Lamed db 0, 0, 0, 30h, 30h, 30h, 3fh, 3h, 3h, 3h, 6h, 0ch, 18h, 30h, 0, 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多