Documentos de Académico
Documentos de Profesional
Documentos de Cultura
fin:
JMP fin
En C En Ensamblador
Log Int v1 area bass
v1: blk 4
Main{ area text
v1=v1+345; add [v1], 0x59 || add[v1],>345 La parte baja
} de 345
add[v1+1], 0x01|| add[v1+1],<345 La parte
alta
add[v1+2],0
add[v1+3],0
fin:
JMP fin
En C En Ensamblador
Char v1,v2,v3 area bass
v1: blk 1
Main{ v2: blk 1
V1=v2—v3; v3: blk 1
V2=v1==0?-v3:5;
area text
} move A, [v2]
sub A, [v3]
move[v1], A
jz Asignar_v3av2 Brinca si z=1
mov[v2],5
jmp continuar
asignar_v3av2:
mov[v2],0
mov A, [v3]
sub [v2], A
mov A, [v3]
CPL A
Inc A
Mov [v2], A
Para el primer código, se tiene un total de 20
ciclos con 7 bytes, para el segundo 20 ciclos
con 6 bytes, de acuerdo a la aplicación del
programa se selecciona el código.
En C En Ensamblador
CicloFor:
Descripción: Se trata de un ciclo for:
Inicio: VA=0 cmp [vn],5
Si JNC fin_de_Ciclo
Vn=0, vn<5, vn++ mov A, [Vn]
VA=A+n add [VA], A
Fin_de_Ciclo:
JMP fin_de_ciclo
En C En Ensamblador
area bass
area bass V1: blk 1
V1: blk 1 V2: blk 1
V2: blk 1
area text
area text mov [V1],0
mov [V1],0 mov [V2],3
mov [V2],3 mov [V3],4
mov [V3],4
CicloFor:
CicloFor:
cmp [v3],0
mov A, [V3] JZ fin_de_Ciclo
JZ fin_de_Ciclo
mov A, [V3]
ASL A ASL A
add A, [v2] add A, [v2]
add [v1], A add [v1], A
Fin_de_Ciclo: Fin_de_Ciclo:
JMP fin_de_ciclo JMP fin_de_ciclo
Diferencias entre los dos programas, en la
segunda se ha eliminado la comparación y se a
movido el comando mov A ,[v3] porque desde
el momento que se mueve al acumulador, se
enciende la bandera de cero
En C En Ensamblador
Subrutina que haga espera de 1 seg
Ciclo3 area bss
Mov[temp1+2], 24 temp1: blk 3
7 DEC[temp1+1]
5 JNZ Ciclo2, 0
7 DEC[temp1+2]
5 JNZ Ciclo3