es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo mostrar en la pantalla usando writeHexByte en un ciclo?

Tengo el carácter displayChar que muestra en el arranque. ¿Cómo agrego writeHexBytes que luego se muestra en la pantalla usando writeHexByte en un bucle y writeHexWord?

*writeHexByte
espera un registro de 8 bits
lo muestra llamando
convertHexNibble y usando
writeChar

*writeHexWord
espera un registro o memoria de 16 bits
parámetro y muestra cada byte
llamando a writeHexByte

así que después de escribir caracteres, necesita mostrar el código de máquina que la macro writeChar implementa. Y mostrar usando writeHexBytes en un bucle

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución

    Para agregar writeHexBytes y writeHexWord para mostrar el código de máquina en la pantalla, se puede utilizar el siguiente código:


    <h1>Definición de Macro</h1> .macro convertirHexNibble registro cmpb $10, \registro jl 1f # el proceso aquí es >=10 add $0x37, \registro jmp 2f<br> # el proceso aquí es <=10 1: add $0x30, \registro<br> 2: # se espera que el registro ahora sea el código ascii .endm .macro escribirByteHex registro convertirHexNibble \registro escribirChar %al .endm .macro escribirWordHex registro mov \registro, %ax escribirByteHex %ah escribirByteHex %al .endm <h1>Código de procesamiento de arranque principal</h1> .code16 .text .global _start _start:</p> <p>mov $06, %al convertirHexNibble %al mostrarChar %al, $0xe3 moverCursor %ah mov $0x0A, %al convertirHexNibble %al mostrarChar %al, $0xe3</p> <p>sumarArray $x 4 sum</p> <p>escribirWordHex sum <h1>Mover Cursor fuera de la pantalla invisble</h1> moverCursor cli # borrar interrupciones hlt x: .byte 1, 5, 2, 10 <h1>char x[] = {1, 5, 2, 10};</h1> sum: .byte 0 <h1>char sum = 0;</h1> . = _start + 510 .byte 0x55 .byte 0xAA

Comments are closed.