Ordena una cadena de caracteres asembler
SECTION .bss
pantalla resb 1 ;Impresion
c resb 1 ;Contador
;*****************Declaracion************************
UNO resb 1
DOS resb 1
TRES resb 1
CUATRO resb 1
CINCOresb 1
SEIS resb 1
SIETE resb 1
OCHO resb 1
NUEVE resb 1
DIEZ resb 1
SECTION .DATA
SECTION .TEXT
GLOBAL _start
_start:;************Asignacion*****************************
mov byte [UNO], '5'
mov byte [DOS], '9'
mov byte [TRES], '2'
mov byte [CUATRO], '4'
mov byte [CINCO], '6'
mov byte [SEIS], '1'
mov byte [SIETE], '3'
mov byte [OCHO], '7'mov byte [NUEVE], '0'
mov byte [DIEZ], '8'
mov eax,04 ;Imprime la cadena inicial
mov ebx,01
mov ecx,UNO
mov edx,12
int 80h
;***************INICIACICLO**************************
inicio:
mov al, byte 0
mov [c],al
mov al,[UNO]
cmp al,[DOS]
jle aumento1
mov ah,[DOS] ;Si no es menor igual
mov [UNO],ah ;Traladar variables desde el UNO al DOS
mov[DOS],al
jmp if2
aumento1: add [c], byte 1 ;incrementar contador.
if2:
mov al,[DOS]
cmp al,[TRES]
jle aumento2
mov ah,[TRES] ;Si no es menor igual
mov [DOS],ah ;Traladar variablesdesde el DOS al TRES
mov [TRES],al
jmp if3
aumento2: add [c], byte 1 ;incrementar contador.
if3:
mov al,[TRES]
cmp al,[CUATRO]
jle aumento3
mov ah,[CUATRO] ;Si no es menor igualmov [TRES],ah ;Traladar variables desde el TRES al CUATRO
mov [CUATRO],al
jmp if4
aumento3: add [c], byte 1 ;incrementar contador.
if4:
mov al,[CUATRO]
cmp al,[CINCO]
jle aumento4mov ah,[CINCO] ;Si no es menor igual
mov [CUATRO],ah ;Traladar variables desde el CUATRO al CINCO
mov [CINCO],al
jmp if5
aumento4: add [c], byte 1 ;incrementar en 1contador.
if5:
moval,[CINCO]
cmp al,[SEIS]
jle aumento5
mov ah,[SEIS] ;Si no es menor igual
mov [CINCO],ah ;Traladar variables desde el CINCO al SEIS
mov [SEIS],al
jmp if6
aumento5: add [c], byte 1...
Regístrate para leer el documento completo.