Preguntas sobre programación en ensamblaje
; Pregunta 1: Calcular bl multiplicado por 20
; Almacenar el resultado del producto en bx
mov bh, 0
mov ch, 0; registrar el número de turnos
mov al, 20
s1:
shr al, 1; lógicamente desplaza el contenido en al hacia la derecha uno; posición
test cf, 1
jz s2; si cf es 0, salta directamente a s2
mov cl, ch
sal bx, cl
s2:
inc ch
cmp ch, 8
jnz s1
ret; final, producto El resultado se coloca en bx
; la pregunta 2 transfiere caracteres
segmento de código
suponga cs: código
proc principal lejos
p>
inicio:
push ds
push es
mov ax, 3000h
mov ds, ax
mov ax, 4000h
mov es, ax
mov si, 0
mov di, 0
mov cx , 50h
cld
rep movsb
pop es
pop ds
main endp
finales del código
end
Pregunta 3: Calcular el número de caracteres no numéricos
segmento de código<; /p>
supongamos cs: código
procedimiento principal lejos
inicio:
mov bx, 0;
ss1:
mov ah, 1
int 21h; ingresa un carácter en al
cmp al, '$' p>
jz display
; Determina si es 0-9
cmp al, '0'
jb ss2
cmp al, '9'
jbe ss1
ss2:
inc bx
jmp ss1
; muestra bx en formato binario Contenido en
pantalla:
mov cx, 16
ss3:
mov dl, '0'
shl bx, 1
cmp cf, 0
je ss4
inc dl
ss4:
mov ah, 02
int 21h
loop ss3
y finalmente genera 'B' para binario
; >mov dl,' b'
mov ah, 02
int 21h
final principal
el código termina
fin