首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在NASM中打印8位值

如何在NASM中打印8位值
EN

Stack Overflow用户
提问于 2013-03-15 17:12:21
回答 1查看 802关注 0票数 1

很抱歉打扰我的mentors.Last几天了,我发了几个queries.And,他们已经伸出援手来帮助我了。通过在x86机器上使用Ubuntu11.04中的NASM,最近我发现了工作中的另一个困惑。它是“如何打印8位值”?假设我的代码片段如下:

代码语言:javascript
复制
    section .data
         var db "string"
    section .text
         global main
    main:
         nop
         xor ebx,ebx

         mov dl,byte[var+ebx]
         mov al, dl  ; setting to AL the ASCII character to write
         mov bh, 0   ; setting the page number to 0 (all in the same page)
         mov bl, 7   ; setting to bl the foreground pixel color
         mov ah, 0xE ; INT10 E sub mode --> Write Text in Teletype Mode
         int 10      ; "calling" to the interrupt.

         nop

现在,我只想打印dl。上面的代码使用了@Shmil The Cat的提示。这就引发了分段错误。我们该如何解决这个问题呢?

提前THank你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-15 19:16:11

在linux上,您可以使用putchar:

代码语言:javascript
复制
        global main
        extern putchar

        section .data
        var db "string"

        section .text
main:
         mov ebx, 0  ; index
         mov dl, [var + ebx]
         push edx
         call putchar
         add esp, 4
         ret

要调用一个需要char的函数,需要推送一个完整的单词。该函数将使用最低有效字节。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15428453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档