很抱歉打扰我的mentors.Last几天了,我发了几个queries.And,他们已经伸出援手来帮助我了。通过在x86机器上使用Ubuntu11.04中的NASM,最近我发现了工作中的另一个困惑。它是“如何打印8位值”?假设我的代码片段如下:
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你。
发布于 2013-03-15 19:16:11
在linux上,您可以使用putchar:
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的函数,需要推送一个完整的单词。该函数将使用最低有效字节。
https://stackoverflow.com/questions/15428453
复制相似问题