Hay respuestas a los ejercicios extraescolares en "Campos electromagnéticos y ondas electromagnéticas" (primera edición) editado por Yang Rugui

3)MOV CH, TABL3 2 CH=(0CH)

4)MOV DL, ARRAY DL=(41H)

5)MOV DH, COUNT DH=(4)

Capítulo 4

4.1 Escriba el segmento del programa para completar las siguientes funciones:

1) Almacenar 32H en CH

.

MOV CH, 32H

2) Suma el contenido en CH a 2AH

AÑADIR CH, 2AH

3) Suma Multiplica el contenido en CH. por 2

ADD CH, CH; (La respuesta en el cuaderno de ejercicios es: SHL CH, 1)

4) Almacena el contenido en CH como BX en la unidad de 10 bytes ( segmento de datos) de la variable de matriz NUM direccionada en relación con la dirección base

MOV BX, 9

MOV NUM[BX], CH

4.2 Escribir el programa segmento que cumple las siguientes funciones:

1) En el segmento de datos, la palabra variable DARA1 tiene dos datos: 1C35H y 0214H, y la palabra variable DARA2 tiene dos datos: 0A678 y 81A4H, la palabra variable DARA3 tiene dos unidades vacías

Autor: 218.27.73.* 2005-9-3 09:21 Responder a esta afirmación

------- ------ -------------------------------------- ------ -----------------

4 Respuestas a ejercicios extraescolares de programación en lenguaje ensamblador

SEGMENTO DE DATOS

p>

DARA1 DW 1C35H, 0214H

DARA2 DW 0A678, 81A4H

DARA3 DW 2 DUP (?)

FIN DE DATOS

2 ) Transfiera los datos de la primera palabra de DATA1 a AX

MOV AX, DATA1

3) Reste el contenido de AX de los datos de la primera palabra de FARA2

. SUB AX, FARA2

4) Almacena el resultado en AX en la primera unidad vacía de DATA3

MOV DATA3, AX

5) Transfiere la segunda palabra. datos de DATA1 a AX

MOV AX, DATA1 2

6) Combine el contenido de AX con los segundos datos de SARA2 y tome prestado la resta para la desaceleración de la primera fase

.

SBB AX, SARA2 2

7) Almacenar el resultado de AX en la segunda unidad de DATA3

4.3 Hay datos digitales firmados en las unidades de palabra de A1 y A2 Intente encontrar el valor absoluto del número de longitud de palabra doble compuesto por A1 y A2, guárdelo en las unidades de palabras de B1 y B2, dibuje el diagrama de flujo del programa y escriba Job

Segmento, incluido el pseudo-. instrucciones y secuencias de instrucciones

SEGMENTO DE DATOS

A1 DW n1

A2 DW n2

SEGMENTO DE DATOS

A2 DW n2

p>

B1 DW

B2 DW

EXTREMOS DE DATOS

SEGMENTO DE CÓDIGO

ASSUME CS: CODE, DS: DATA

MOV AX, DATA

MOV DS, AX

CMP WORD PTR A2, 7FFFH

JNL

CÓDIGO1

NEG PALABRA PTR A2

NEG PALABRA PTR A1

CÓDIGO1: MOV AX, A1

MOV DX, A2

MOV B1, AX

MOV B2, DX

MOV AH, 00H

INT 21H

CÓDIGO FINALIZA

p>

FIN

4.4 Combine los códigos ASCII de los dos números decimales almacenados en la variable de bytes BCD1 en un código BCD comprimido de un byte, guárdelo en BCD2 e intente para escribir el segmento del programa

SEGMENTO DE DATOS

BCD1 DB 37H, 38H

BCD2 DB

TERMINOS DE DATOS

SEGMENTO DE CÓDIGO

p>

ASUME DS: DATOS, CS: CÓDIGO

INICIO: MOV AX, DATOS

MOV DS, AX

MOV AL, BCD1 1

AND AL, 0FH

MOV BL, BCD1

MOV CL, 4

SHL BL, CL

O AL, BL

MOV BCD2, AL

CÓDIGO FINALIZA

FINAL INICIO

4.5 Escriba los segmentos de programa para cada uno de los siguientes cálculos, donde X, Y, Z, R y W son direcciones de símbolos unitarios que almacenan números sin signo de 16 bits:

SEGMENTO DE DATOS

X DW 3031H

Y DW 3032H

Z DW 3033H

R DW 3034H

W DW 3035H

LOS DATOS TERMINAN

SEGMENTO DE CÓDIGO

ASUME CS: CÓDIGO, DS: DATOS

INICIO: MOV AX, DATOS

MOV DS , AX

; 1) Zlt;---W (z-x)

MOV AX, Z

SUB AX, X

AÑADIR AX, W

MOV Z,AX

;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt ;gt;gt;gt;gt;gt;gt ;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;

;2)Zlt;---(W *X)/(Y 6), Rlt; ---resto

MOV AX, W

MUL X

MOV BX, Y

AÑADIR BX, 6

DIV BX

MOV Z, AX

MOV R, DX

;gt;gt; gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt; gt;gt;gt; gt; gt; gt; gt; gt; gt;

; )-(R-9)

MOV AX, R

SUB AX, 9

MOV BX, X

AÑADIR BX, 6

MOV CX, W p>

SUB CX, BX

SUB CX, AX

MOV Z, CX

;gt;gt;gt;gt;gt ;gt ;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt;gt ;gt ;gt;gt;gt;gt;gt;

;4)Zlt;---((W-X)/5×Y)×2, el resto se descarta

MOV AX, W

SUB AX, X

DIV 5

MOV AH, 00H

MUL Y

MUL 2

MOV Z, AX

MOV R, DX Si el resultado del cálculo es un byte doble, los 16 bits superiores se almacenarán en un bit de palabra detrás de Z; unidad de palabra.

DTATA ENDS

END START

5.1 ¿En qué partes funcionales se pueden dividir los programas ramificados? ¿Utiliza diagramas de flujo para representar los componentes funcionales de varios programas filiales? ¿Cómo se puede generar una condición de doble rama? ¿Cómo se forman las condiciones de múltiples ramas? ¿Cuáles son las diferencias en los métodos para determinar las condiciones en varios programas sectoriales? ¿Cuáles son las diferentes formas de implementar ramificaciones?

Los programas de rama se pueden dividir en: condiciones de generación, pruebas, orientación y etiquetas. Para ver el diagrama de flujo, consulte la Figura 5-4 en la página 119 del libro de texto. Utilice instrucciones que puedan afectar CF, ZF y OF para generar condiciones, como CMP, SUM, AND, TEST e instrucciones de desplazamiento. (El resto de las respuestas se omiten, están todas en el libro)

5.2 Intente analizar el siguiente segmento del programa y explique qué operaciones se completan. ¿Cuál es el contenido de la unidad de bytes HEXNUM antes y después de ejecutar el programa?

ASCNUM DB 41H

HEXNUM DB

MOV AH, ASCNUM

CMP AH, 39H

JBE SIGUIENTE

SUB AH, 7

SIGUIENTE: SUB AH, 30H

MOV HEXNUM, AX

HLT

Completado cuando el código ASCII del número hexadecimal representado por ASCNUM se convierte en un número hexadecimal y se almacena en los cuatro bits inferiores de la unidad de bytes ASCNUM, es una unidad vacía antes de la ejecución y 0A después de la ejecución.

5.3 Intente escribir las operaciones especificadas en el diagrama de flujo de la pregunta 5.3

P1: MOV AX, -1

JMP P4

P2: MOV AX, 0

JMP P4

P3: MOV AX, 1

JMP P4

CMP AX, -1

JLE P1

JL P2

JMP P3

p4: MOV AL, 00H

INT 21

5.4 Pruebe el carácter del código ASCII en la unidad variable de bytes ALPHA y realice las siguientes operaciones:

1) Si es un carácter numérico, envíelo a la unidad de bytes NUM y configure el flag FLAG a 0

2) Si es un carácter de letra mayúscula, envíalo a la unidad de bytes BIGCHR y establece el flag FLAG en 0

3) Si es minúscula carácter de letra, envíelo a la unidad de bytes SMLCHR, establezca el indicador FLAG en 0

Autor: 218.27.73.* 2005-9-3 09:21 Responder a esta declaración

------------ -------------------------------------- ------------ ------------------

5 respuestas a ejercicios extraescolares de programación en lenguaje ensamblador

4) De lo contrario, establezca el indicador BANDERA en 1

SEGMENTO DE DATOS

ALFA DB "A"

NUM DB

BIGCHR DB ?

SMLCHR DB

BANDERA DB

DATOS FINALES

SEGMENTO DE CÓDIGO

ASUMIR DS: DATOS, CS: CÓDIGO

INICIO: MOV AX, DATOS

MOV DS, AX

MOV AX, ALPHA

CMP AX, 30H

JBE N4

CMP AX, 39H

JA N1

MOV NUM, AX

JMP N5

N1: CMP AX , 41H

JB N4

CMP AX , 5A

JA N2

MOV BIGCHR, AX

JMP N5

N2: CMP AX, 61H

JB N4

CMP AX, 7a

JA N4

MOV SMLCHR, AX

JMP N5

N4: MOV BANDERA, 1

JMP N3

N5: BANDERA MOV, 0

p>

N3: MOV AX, 00H

INT 21

FIN DEL CÓDIGO

FINAL INICIO

5.5 se establece en la unidad variable. Hay tres números almacenados en A, B y C. Si ninguno de los tres números es 0, encuentre la suma de los tres números y guárdelo en D; si uno es 0, borre las otras dos unidades. Escriba esta secuencia de programa.

SEGMENTO DE DATOS

A DB 10

B DB 20

C DB 30

D DB

LOS DATOS TERMINAN

SEGMENTO DE CÓDIGO

ASUME CS: CÓDIGO, DS: DATOS

INICIO: MOV AX, DATOS

MOV DS, AX

CMP A, 0

JZ P1

CMP B, 0

JZ P1

CMP C, O

JZ P1

MOV AL, 0

AÑADIR AL, A

AÑADIR AL, B

AÑADIR AL, C

MOV D, AL

JMP P2

P1: MOV A, 0

MOV B, 0

MOV C, 0

P2: MOV AH, 0

INT 21H

EL CÓDIGO FINALIZA

END START

5.6 Supongamos que las unidades X y X+2 y las unidades Y e Y+2 almacenan datos con signo de dos palabras (X e Y son palabras de orden inferior). Explique qué operaciones realizan los siguientes segmentos del programa. Si el comando JBE L2

se cambia al comando JB L2, ¿cuál es la diferencia en los resultados de la operación? ¿Qué significan AX=1 y AX=2?

MOV DX, X+2

MOV AX, X

AÑADIR AX, > CMP DX, Y+2

JL L2

JG L1

CMP AX,Y

JBE L2

L1: MOV AX,1

JMP SALIR

L3: MOV AX, 2

SALIR: HLT

Cambiar la palabra doble de X El número de la celda se multiplica por 2 y se compara con el número en la celda de doble palabra de Y. Si X es menor o igual que Y, escriba 2 en AX; si X es mayor que Y, escriba 1 en AX.

Si el comando JBE L2 se cambia a JB L2, cuando X sea igual a Y, se escribirá 1 en AX. El resto es igual que el anterior.

5.7 Intente escribir un programa que requiera comparar tres números con signo de 16 bits en la matriz ARRAY. Según el resultado de la comparación, establezca el indicador BANDERA:

1) Si los tres números no son iguales, establezca BANDERA en cero.

2) Si dos de los tres números son iguales, BANDERA es 1.

3) Si los tres números son todos iguales, BANDERA es 2.

SEGMENTO DE DATOS

ARRAY DW 1000H, 2000H, 3000H

BANDERA DB

EXTREMOS DE DATOS

CÓDIGO SEGMENTO

ASUME CS: CÓDIGO, DS: DATOS

INICIO: MOV AX, DATOS

MOV DS, AX

MOV AX, ARRAY

MOV BX, ARRAY 2

MOV CX, ARRAY 4

MOV DL, 0

CMP AX, BX

JNZ N1

INC DL

N1: CMP BX, CX

JNZ N2

INC DL

CMP DL, 2

JZ N5

N2: CMP AX, CX

JNZ N3

INC DL

JMP N5

N3: CMP DL, 1

JNZ N4

JMP N5

N4: MOV DL, 0

JMP N6

N5: BANDERA MOV, DL

N6: MOV AH, 00H

INT 21H

CODE FINDS

END START

6.1 La parte del valor inicial de los parámetros del ciclo, la parte de trabajo del ciclo y la parte de control del ciclo. (No soy muy bueno haciendo este tipo de preguntas, así que puedes buscarlo en un libro).

6.2

1) Suma 10 números pares consecutivos comenzando desde 2 y almacenar la suma SUM. SUM=110

2) Envía los números 5, 6, 7, 8 y 9 de las últimas cinco unidades de DAT1 a las cinco unidades de DAT2 en secuencia. El contenido de DAT2 es 5, 6, 7, 8, 9

6.3

1)

LEA AX, BUF1

LEA BX , BUF2

MOV CX, N

LOP1: MOV AL, [AX]

MOV [BX], AL

INC AX

INC BX

BUCLE LOP1

2)

LEA SI, BUF1

LEA DI, BUF2

MOV CX, N

CLD

REP MOVSB ​​​​

3)

LEA SI, BUF1

LEA DIBUF2

MOV CX, N

CLD

LP: LODSB

STOSB

BUCLE LP

6.

4

LEA BX, NÚMERO

LEA SI, MÁS

MOV CX, 256

LP: MOV AL, [BX]

INC BX

Y AL,AL

JNS L1

LOOP LP

JMP L2

L1: MOV [SI], AL

INC SI

LOOP LP

L2: HLT

6.5

SEGMENTO DE DATOS

GARDE DB a1, a2, a3,...a100

A90 DB 0

A80 DB 0

A70 DB 0

A60 DB 0

A0 DB 0

DATOS EDNS

SEGMENTO DE CÓDIGO

Autor: 218.27.73.* 2005-9-3 09:21 Responder a esta afirmación

------------------------ -------------------------------------------------- -----

Respuestas a 6 ejercicios extraescolares de programación en lenguaje ensamblador

ASUME CS:CODE, DS:DATA

INICIO: MOV AX, DATA

MOV DS, AX

MOV BX, AX

MOV CX, 100

LOP1: CMP [BX], 60

JB P1

CMP [BX], 70

JB P2

CMP [BX], 80

JB P3

CMP [BX], 90

JB P4

JMP P5

B1: BX 1

BUCLE LOP1

P1: INC A0

JMP B1

P2: INC A60

JMP B1

P3 : INC A70

JMP B1

P4: INC A80

JMP B1

P5: INC A90

JMP B1

CÓDIGO ENNS

FIN INICIO

6.6

1) BANDERA MOV, FFH

LEA AX ,

DATOS1

LEA BX, DATOS2

MOV CX, N

P0: CMP [AX], [BX]

JNZ P1

INC AX

INC BX

BUCLE P0

JMP P2

P1: BANDERA MOV, 0

p>

DATOS MOV1, AX

DATOS MOV2, BX

P2: HLT

2) ASUME CS: CÓDIGO, DS : DATA, ES: DATA ; Sea DATA la dirección del segmento de datos

MOV AX, DATA

MOV DS, AX

MOV ES, AX

p>

LEA SI, DATOS1

LEA DI, DATOS2

MOV CX, N

CLD

REPE CMPSB

JNZ P1

BANDERA MOV, 0FFH

JMP P2

P1: BANDERA MOV, 0

DATOS MOV1, [SI]; Libro de referencia Hay dos oraciones DEC SI y DEC DI delante, no sé qué significan

MOV DATA2, [DI]

p2: HLT <. /p>

6.7 LEA AX, BUFFER1

AÑADIR AX, N

DEC AX

LEA BX, BUFFER2

MOV CX, N

LOP1: MOV DX, [AX]

MOV [BX], DX

DEC AX

INC BX

LOOP LOP17.1

La transferencia de datos entre el programa principal y el subprograma debe realizarse a través de medios intermedios, como registros en la CPU, pilas en la memoria o unidades de trabajo. Cada uno corresponde a un método de entrega.

Los datos de almacenamiento de registros son pequeños, pero la velocidad es rápida.

La pila es el último en entrar, el primero en salir, el seleccionado en entrar, el último en salir y hay un límite de cantidad. Se utiliza principalmente para protección in situ. Las unidades de almacenamiento tienen la máxima libertad.

7.2 Programa de retardo de tiempo, para esperar un periodo de tiempo.

7.3

Mueva los datos en las unidades continuas de 100 bytes que comienzan con DEST a las unidades continuas de 100 bytes que comienzan con SOURCE.

(CALL insertará CS e IP en la pila. ¿El moderador y CS también serán ingresados ​​en la pila? ¿Es esto porque es una transferencia fuera de segmento?)

Las siguientes dos grandes preguntas pueden Aparece en el examen. La naturaleza es muy pequeña. Debido a limitaciones de tiempo, no lo haré por ahora

Capítulo 2 Ejercicios y respuestas después de la escuela (2003-7-2 16:38:00).

-- ----------------------------------------- --------- ----------------------------

2.1 (1) MOV CX , [BX][SI]

(2) AGREGAR AX, valor[BX]

(3)? CMP 0B6H, NUM

(4) PRUEBA [COUNT BP DI], 80H

(5) ROL AH, 4 o ROR AH, 4

(6) XOR [SI], [SI]

2.2 (1)---- C

(2)----A

(3)----B

(4) ----E

(5)----D

2.3 (1) AX=1200H

(2) AX=647AH

(3) (10050H )=7DH, (10051H)=0B7H

ZF=0, SF=1, CF=0, OF=0

(4) (12AD0H)=0F7H, CF=0 , OF=0

(5) (12BD0H)=31H, CH=31H

2.4 (1)MOV AX, CL; los bytes están mezclados.

(2)MOV CS, AX; área del programa de control CS, no se pueden colocar datos.

(3)INC BETA[BP]; Para el operando de memoria se debe especificar si es palabra o byte.

(4)MOV ES, 1850H; los datos inmediatos no se pueden enviar al registro de segmento.

(5)ADD BX, DS; para la instrucción ADD, el registro de segmento no puede ser SRC o DST

(6)AND AX, [CX];? >

Para la siguiente pregunta, no sé lo que quiere decir el autor de la pregunta y no puedo entenderlo. ¿Podrías publicar la respuesta? ¡Gracias!

2.7 puede usar MOV CX, BLOCK 10

Si ejecuta este programa en 2.10, definitivamente se escapará.

Autor: 218.27.73.* 2005-9-3 09:21 Responder a esta afirmación

----------------- ------------------------------------------------- - ------------

7 respuestas: Respuestas a ejercicios extraescolares de programación en lenguaje ensamblador

XIEXIE

TE AMO

p>