Red de conocimiento informático - Conocimiento informático - Ayuda a explicar este código ensamblador en detalle

Ayuda a explicar este código ensamblador en detalle

Nada interesante

Solo un ejercicio sobre varios métodos de direccionamiento

MOV AH, 4CH

INT 21H

El proveedor devuelve

MOV AX, DATA2

MOV ES, AX

Hacer que ES apunte a la dirección del segmento DATA2

Otros están dirigiéndose modo

AX, BX, CX, DX, BP, SI, DI son registros de datos

CS, DS, ES, SS son registros de segmento

MOV AX , CX

Hacer AX=CX

MOV AX,500H

Hacer AX=500H

MOV AX,ES: [BX]

El contenido de la unidad de memoria compensado por AX=ES segmento BX

(Lo mismo se omitirá en el futuro)

MOV AX, SS: [BX ] +03H

Hacer contenido de unidad de memoria AX=SS segmento (BX+3) (nota, no contenido [BX] +3)

MOV AX, TABLE[BP]

Crear contenido del segmento AX=DS (predeterminado) (contenido BP + ubicación del segmento TABLE) en la unidad de memoria

MOV AX, [BX][DI+01H]

Hacer segmento AX=DS (predeterminado) [BX+DI+1] contenido de la unidad de memoria

De todos modos, recuerda:

[..] representa el número de unidad

MOV AX, lo que viene después es la dirección del segmento: desplazamiento, o valor inmediato o registro. Es absolutamente imposible simplemente agregar el contenido de una unidad y luego dárselo a AX

Cuando encuentras algo. no reconoces Las palabras (no instrucciones) son básicamente variables o nombres de segmentos. Para encontrarlas

XXXX (nombre) DB/DW/DD XXXX

o XXXX (nombre) SEGMENT.

Eso es todo

La entrada del comando se puede ver desde el último END XXX

Se recomienda leer el "Lenguaje ensamblador" de Wang Shuang