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] p>
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