Created
May 2, 2023 15:04
-
-
Save amostyaev/027aa618fcf9c5a89fc90d3e51804c08 to your computer and use it in GitHub Desktop.
Семинар от 2 мая
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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