C语言语言培训班:汇编语言语句的含义(d l meaning)

关于C语言语言培训班的问题,在d l meaning中经常遇到, 有一个汇编语言命令:

有一个汇编语言命令:

add dl, 48d

这个汇编语言语句的确切目的和意义是什么?当我编写代码时

mov al, 02
mov dl, al
mov ah, 02
int 21h

它给出的输出为b。但是当我写,

mov al, 02
mov dl, al
add dl, 48d
mov ah, 02
int 21h

它给出2作为输出。这个语句到底在做什么?

4

看起来像 x86 汇编程序。此命令正在将 48 (48 十进制) 添加到 (E) DX 寄存器的低 8 位的内容中。请参阅x86 general purpose registers,但有关实际说明,请参阅x86 Wikipedia page, section "x86 registers"

在 x86 上,您可以访问寄存器的一部分。从历史上看,这样做是为了使 8086(16 位寄存器)与 8080(8 位寄存器)尽可能兼容。然后,该方案在具有 32 位寄存器的 80286 / 80386 上扩展,然后在 AMD x64 模式下再次扩展到 64 位。

因此,您可以将整个 32 位寄存器作为 EDX 访问(在保护模式下),将下部 16 位寄存器作为 DX 访问。现在,此 16 位部分(DX)进一步分为两部分:上部 8 位作为 DH 访问,下部 8 位作为 DL 访问。

编辑问题后进行编辑:

让我们从后往前解释引用的代码:最后,调用中断 21hex,在 IBM PC 兼容系统上负责various DOS API calls。将 8 位寄存器 AH 设置为 2 会导致要执行的字符输出。要输出的字符驻留在 8 位寄存器 DL 中。

因此,在您的第一个示例中,ASCII character02 被打印,但这是一个控制字符,因此输出不应该是b,因为您声明它只是不可见的东西(02 是开始文本)。第二个示例采用 2,然后加上 48,给出 50(十进制)。这是字符2的 ASCII 代码。

天哪,我现在真的觉得自己老了……我 20 年前就做过这种事。

0

这很简单。它将 48(十进制)添加到 8 位寄存器DL

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(460)
Cat games:将文件与 cat合并(cat rust)
上一篇
Mo(co)6:使用ffmpeg从slo-mo(240fps)超时(1/6fps)
下一篇

相关推荐

  • cvt和自动挡哪个好提升驾驶体验的最佳选择

    CVT(可变转换器)是一种由传动带及传动轮组成的无级变速器,它可以在没有传动档位的情况下,根据驾驶者的驾驶习惯,自动调整传动轮之间的转速比,从而实现无级变速。自动挡是指车辆自动变速箱,它使用液力传动来实现变速,可以自动适应车辆的行驶状态,减少司机的疲劳,提高行车的舒适性。…

    2023-06-08 07:42:19
    0 52 52
  • cv一叶扁舟和清影轩阳:漫游在一叶扁舟和清影轩阳之间

    cv一叶扁舟是一款开源的计算机视觉库,用于图像处理、计算机视觉等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。清影轩阳是一款开源的计算机视觉框架,用于图像处理、目标检测、分类等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。…

    2023-08-05 07:06:20
    0 35 64
  • css设置滚动条宽度设置:This is a title

    CSS设置滚动条宽度的方法:使用CSS3的。-webkit-属性:…

    2023-06-06 10:53:01
    0 79 71
  • xl和xe汽车cvt:探索XL和XE汽车的CVT技术优势

    XL和XE汽车CVT是一种变速器,它使用液力变矩器代替传统的机械变速器,以达到更高的效率。它的工作原理是,当发动机输出功率时,液力变矩器就会将这些功率转换为液压能量,然后将能量传递到变速器的输出轴上,从而实现变速。…

    2023-04-09 00:41:04
    0 72 31
  • cordon bleu是什么意思:法式炸鸡卷——Cordon Bleu的经典之作

    Cordon Bleu是一种烹饪技术,其中肉片被置于奶酪和火腿之间,然后用面包屑裹上,最后煎炸或烤熟。这种技术通常用于制作鸡肉,但也可以用于制作其他类型的肉类,如牛肉或猪肉。…

    2024-01-27 15:13:30
    0 28 54
  • countif 非空:非空单元格的计数

    Countif 非空是指计算某个单元格不为空的数量。代码如下:…

    2023-04-22 15:54:15
    0 96 67
  • java double保留一位小数:How to Round a Double to One Decimal Place in

    示例示例使用类可以轻松实现java double保留一位小数的功能,具体代码如下:// 创建对象…

    2023-05-14 07:40:03
    0 56 62
  • linux如何写c语言一个完整的指南

    示例示例在Linux系统中,可以使用C语言编写源代码文件,然后使用GCC编译器来编译源代码文件,生成可执行文件。下面是一个简单的C语言代码示例:…

    2023-05-16 02:02:45
    0 55 72

发表评论

登录 后才能评论

评论列表(84条)