用来从stdin和stdout读数据的汇编代码,在FREEBS…

2009-05-13 14:11:31来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

代码是这样的:%include   'system.inc'
section .data
hex db  '0123456789ABCDEF'
buffer  db  0, 0, ' '
section .text
global  _start
_start:
    ; read a byte from stdin
    push    dword 1
    push    dword buffer
    push    dword stdin
    sys.read
    add esp, byte 12
    or  eax, eax
    je  .done
    ; convert it to hex
    movzx   eax, byte [buffer]
    mov edx, eax
    shr dl, 4
    mov dl, [hex+edx]
    mov [buffer], dl
    and al, 0Fh
    mov al, [hex+eax]
    mov [buffer+1], al
    ; print it
    push    dword 3
    push    dword buffer
    push    dword stdout
    sys.write
    add esp, byte 12
    jmp short _start
.done:
    push    dword 0
    sys.exit


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/36510/showart_1006169.html

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Sysctl 和 bootloader

下一篇:FREEBSD下的FIND命令