Red de conocimiento informático - Conocimiento sistemático - Programación en lenguaje ensamblador, urgente, online, etc.

Programación en lenguaje ensamblador, urgente, online, etc.

Acabo de aprender a ensamblar, así que puede que esté un poco cansado de compilar, por favor no te ofendas

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

SEGMENTO SSEG PARA PILA

DB 64 DUP(?)

SSEG TERMINA

SEGMENTO DSEG

MESS1 DB 'FELIZ CUMPLEAÑOS A $'

MESS2 DB 'TU CUMPLEAÑOS LLEGARA EL PRÓXIMO AÑO.$ '

MESS3 DB 'TU CUMPLEAÑOS LLEGARA EN $'

MESS4 DB 'DIA(S).$'

O_NAM DB 'TU NOMBRE:$'

O_BIR DB ' CUMPLEAÑOS: $'

I_NAM DB 32

DB ?

DB 32 DUP(?)

I_BIR DB 5

DB ?

DB 5 DUP(?)

EXTREMOS DSEG

SEGMENTO CSEG

Supongamos CS: CSEG, DS: DSEG

INICIO: MOV AX, DSEG

MOV DS, AX

LEA DX, O_NAM

MOV AH, 9H

INT 21H

LEA DX, I_NAM

MOV AH, 0CH

MOV AL, 0AH

INT 21H

CALL NEWLINE

MOV AL, I_NAM 1

XOR AH, AH

MOV SI, AX

MOV I_NAM [SI 2], 24H

LEA DX, O_BIR

MOV AH, 9H

INT 21H

LEA DX, I_BIR

p>

MOV AH, 0CH

MOV AL, 0AH

INT 21H

LLAMADA NUEVA LÍNEA

MOV SI, 2

LLAMADA XCH

MOV BH, BL

LLAMADA XCH

MOV AH, 2AH

INT 21H

p>

CMP BH, DH

JA BIG1

JB SMA

CMP BL, DL

JA BIG2

JB SMA

LEA DX, MESS1

MOV AH, 9H

INT 21H

LEA DX, I_NAM

AGREGAR DX, 2

MOV AH, 9H

INT 21H

JMP OK

BIG1: SUB BH, DH

MOV AL, 30

MUL BH

XOR BH, BH

SUB BL, DL

S

BB BH, 0

AÑADIR AX, BX

XOR DX, DX

MOV BL, 10

XOR CX, CX p>

JMP NEXT1

BIG2: SUB BL, DL

XOR AH, AH

MOV AL, BL

XOR DX, DX

MOV BL, 10

XOR CX, CX

NEXT1: CMP AX, 10

JB SHOW

DIV BL

MOV DL, AH

PUSH NEXT1.

PUSH DX

XOR AH, AH

INC CX

JMP NEXT1

MOSTRAR: PUSH AX

LEA DX, MESS3

MOV AH, 9H

INT 21H

POP AX

MOV DL, AL

AÑADIR DL, 30H

MOV AH, 02H

INT 21H

CMP CX, 0

JE OK1

SIGUIENTE2: POP DX

AÑADIR DL, 30H

MOV AH, 02H

INT 21H

BUCLE SIGUIENTE2

OK1: LEA DX, MESS4

MOV AH, 9H

INT 21H

JMP OK

SMA: LEA DX, MESS2

MOV AH, 9H

INT 21H

OK: MOV AH, 4CH

INT 21H

XCH PROC

MOV AL, I_BIR[SI]

SUB AL, 30H

MOV BL, 10

MUL BL<

INC SI

MOV BL, I_BIR[SI]

SUB BL, 30H

INC SI

AÑADIR BL,

RET

XCH ENDP

NEWLINE PROC

EMPUJAR AX

EMPUJAR DX

MOV DL, 0DH

MOV AH, 2H

INT 21H

MOV DL, 0AH

MOV AH, 2H

INT 21H

POP DX

POP AX

RET

NEWLINE ENDP p>

CSEG TERMINA

FIN INICIO