Experimento 5 de lenguaje ensamblador (Wang Shuang), después de completar las preguntas quinta y sexta, analice todo el código línea por línea y analícelo y resuma segmento por segmento.
Experimento 5 Escribir y depurar programas con múltiples segmentos
------------------------ --- -------------
(1)
1. Permanecer sin cambios
2.lt; considerar que diferentes máquinas tienen diferentes entornos, por lo que la respuesta no se puede unificar;
3.X-2, X-1
(2)
1.
p>
2.lt; Considerando los diferentes entornos de diferentes máquinas, la respuesta no se puede unificar;
3.X-2, X-1
4 .(N/16 1 )*16 [Nota: N/16 solo toma la parte entera]
(3)
1. 2.lt; considere diferentes máquinas El entorno es diferente y las respuestas no se pueden unificar;
3. Porque si se elimina la etiqueta de inicio después de la instrucción de finalización, el compilador ejecutará el programa secuencialmente. En otras palabras: cuando no se notifica al compilador con anticipación dónde comenzar a ejecutar el programa, el compilador automáticamente compila y ejecuta el programa fuente en un orden "de arriba a abajo".
(5) El programa completo es el siguiente:
supongamos cs:code
un segmento
db 1, 2, 3 , 4, 5, 6, 7, 8
a termina
b segmento
db 1, 2, 3, 4, 5, 6, 7, 8
p>b termina
segmento c
db 0, 0, 0, 0, 0, 0, 0, 0
c termina p>
segmento de código
inicio: mov ax, a
mov es, ax
mov ax, c
mov ds, ax
mov bx, 0
mov cx, 8
s1: mov ax, es: [bx]
añadir [bx], ax
añadir bx, 2
bucle s1
mov ax, b
mov es , ax
mov ds, ax
mov bx, 0
mov cx, 8
s2: mov ax, es: [ bx]
añadir [bx], hacha
añadir bx, 2
bucle s2
mov hacha, 4c00h
int 21h
el código termina
fin de inicio
(6) El procedimiento completo es el siguiente:
supongamos cs: código
un segmento
dw 1, 2, 3, 4, 5, 6, 7, 8
a termina
b segmento
dw 0, 0, 0, 0, 0, 0, 0, 0
b termina
código segmento
inicio :
mov hacha, b
mov ss, hacha
mov sp, 10h
mov hacha, a
mov ds, ax
p>mov bx, 0
mov cx, 8
s: empujar [bx]
agregar bx, 2
bucle s
mov ax, 4c00h
int 21h
el código termina
end inicio
Experimento 6 Procedimientos en Cursos Prácticos
-------------------------------- -----
(2) Programación: Complete el programa de la pregunta.
El procedimiento completo para la pregunta 7.9 es el siguiente:
suponga cs: codesg, ss: stacksg, ds: datasg
segmento de stacksg
dw 0 , 0, 0, 0, 0, 0, 0, 0
fin de pila
segmento de datos
db '1. /p>
db '2. explora '
db '3. reemplaza '
db '4. >
códigosg segmento
inicio:
mov ax, stacksg
mov ss, ax
mov sp, 16 p>
mov ax, datasg
mov ds, ax
mov bx, 0
mov cx, 4
s : ; bucle exterior
push cx
mov si, 3
mov cx, 4
s0: ; >
mov al,[bx si]
y al,11011111b
mov [bx si],al
inc si
bucle s0
añadir bx, 16
pop cx
bucle s
mov hacha, 4c00h
int 21h
codesg termina
fin inicio