Skip to content

Instantly share code, notes, and snippets.

@amostyaev
Created May 2, 2023 15:04
Show Gist options
  • Save amostyaev/027aa618fcf9c5a89fc90d3e51804c08 to your computer and use it in GitHub Desktop.
Save amostyaev/027aa618fcf9c5a89fc90d3e51804c08 to your computer and use it in GitHub Desktop.
Семинар от 2 мая
INCLUDE settings.inc
INCLUDE io2020.inc
.STACK 4096
.DATA
FStr DB 'The program starts working.',0
LStr DB 'The program has ended.',0
; X DB 1, 2, 3, 3, 3
STR DB 'ABCFF'
.CODE
; 11.20
F PROC
MOVZX EBX, BL
CMP EAX, EBX
JL L
MOV EDX, 0
DIV EBX
PUSH EDX
CALL F
POP EDX
OUTI EDX
JMP L1
L:
OUTI EAX
L1:
RET
F ENDP
; 11.19
; MAXLET PROC
; PUSH EBP
; MOV EBP, ESP
; SUB ESP, 26
; PUSH EBX;
; PUSH ECX; N
; PUSH EDX;
; PUSH ESI; X
; MOV ECX, 26
; STAC: MOV byte ptr [EBP-26+ECX-1], 0
; LOOP STAC
; MOV ESI, [EBP+8]
; MOV ECX, [EBP+12]
; MOV EDX, 0
; MOV BL, 0
; L: CMP byte ptr [ESI+ECX-1], 'A'
; JB NO
; CMP byte ptr [ESI+ECX-1], 'Z'
; JA NO
; MOV DL, [ESI+ECX-1]
; SUB DL, 'A'
; INC [EBP-26+EDX]
; CMP byte ptr [EBP-26+EDX], BL
; JBE NO
; MOV BL, byte ptr [EBP-26+EDX]
; MOV AL, [ESI+ECX-1]
; NO: LOOP L
; POP ESI
; POP EDX
; POP ECX
; POP EBX
; MOV ESP, EBP
; POP EBP
; RET 8
; MAXLET ENDP
; 11.15
; F PROC
; PUSH EBP
; MOV EBP, ESP
; PUSH EBX
; PUSH ECX
; PUSH EDX
; MOV AL, 0
; MOV EBX, [EBP+8]
; MOV ECX, [EBP+12]
; MOV EDX, [EBP+16]
; L:
; CMP [EBX+ECX-1], DL
; JNE NO
; INC AL
; NO: LOOP L
; POP EDX
; POP ECX
; POP EBX
; POP EBP
; RET 12
; F ENDP
start: OUTSTR offset FStr
NEWLINE
;11.20
ININT EAX
MOV BL, 10
CALL F
; 11.19
; PUSH 5
; PUSH offset STR
; CALL MAXLET
; OUTCHAR AL
; NEWLINE
; 11.15
; PUSH 2
; PUSH 5
; PUSH offset X
; CALL F
; MOVZX EAX, AL
; OUTI EAX
OUTSTR offset LStr
NEWLINE
EXIT
END start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment