繁体   English   中英

打印号码到屏幕组件

[英]print number to screen assembly

我想将寄存器中的数字打印到屏幕上。 此外,我想将其另存为字符串(字节)。 因此,如果我有一个像150这样的数字,我想将其保存在某个地址为

'1','5','0'

mov ebx, dword ptr[ebp+8]
; eax contains value
; ebx contains address to store characters

; here is where conversion would take place

由于它在寄存器中,您是否必须将其转换为十进制值,然后将每个位置分开?

我不确定如何打印ASCII码以及如何分隔每个位置。 因此,我只想展示如何将EAX的值转换为十进制ASCII并将其存储到DS:EBX的地址。 对于最大0FFFFFFFFh的32位值,我们需要一个十位十进制ASCII(4294967295)的位置。 例如,如果该值是十进制的150,那么我们得到的ASCII码为“ 0000000150”,开头是“ 0”。

      mov     cl, 0Ah             ; counter for ten decimal ASCII's
      mov     edi, 1000000000
P1:   xor     edx, edx
      div     edi
      add     al, 30h             ; convert to ASCII
      mov     esi, edx            ; save remainder
      mov     [ebx], al           ; store ASCII to the address of DS:EBX
      inc     ebx
      mov     eax, edi
      mov     edi, 0Ah
      xor     edx, edx
      div     edi
      mov     edi, eax
      mov     eax, esi
      dec     cl
      jnz P1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM