Skip to content

Instantly share code, notes, and snippets.

@amostyaev
Created May 2, 2023 15:03
Show Gist options
  • Save amostyaev/3b8b47552d2e878ccc04ddbc96db2ed1 to your computer and use it in GitHub Desktop.
Save amostyaev/3b8b47552d2e878ccc04ddbc96db2ed1 to your computer and use it in GitHub Desktop.
Семинар от 2 мая
INCLUDE settings.inc
INCLUDE io2020.inc
.STACK 4096
.DATA
X DB 'HELLO WORLDDDDDD'
; N = 5
; X DB N dup(?)
FStr DB 'The program starts working.',0
LStr DB 'The program has ended.',0
.CODE
;11.20
OUTD PROC
; PUSH EBP
; MOV EBP, ESP
MOVZX EBX, BL
CMP EAX, EBX
JL L
MOV EDX, 0
DIV EBX
PUSH EDX
CALL OUTD
POP EDX
OUTI EDX
JMP S
L: OUTI EAX
S:
; POP EBP
RET
OUTD ENDP
;11.19
; MAXLET PROC
; PUSH EBP
; MOV EBP, ESP
; SUB ESP, 26
; MOV ECX, 26
; F: MOV byte ptr [ESP + ECX - 1], 0
; LOOP F
; PUSH ECX
; PUSH ESI
; PUSH EDX
; PUSH EBX
; MOV ECX, [EBP] + 12
; MOV ESI, [EBP] + 8
; MOV EDX, 0
; MOV BL, 0
; L: cmp byte ptr [ESI + ECX - 1], 'A'
; JB L1
; cmp byte ptr [ESI + ECX - 1], 'Z'
; JA L1
; MOV DL, [ESI + ECX - 1]
; SUB DL, 'A'
; INC [EBP - 26 + EDX]
; cmp byte ptr [EBP - 26 + EDX], BL
; JBE L1
; MOV BL, byte ptr [EBP - 26 + EDX]
; MOV AL, [ESI + ECX - 1]
; L1: LOOP L
; POP EBX
; POP EDX
; POP ESI
; POP ECX
; MOV ESP, EBP
; POP EBP
; RET 8
; MAXLET ENDP
; ;11.15
; F PROC
; PUSH EBP
; MOV EBP, ESP
; PUSH EDX
; PUSH ECX
; PUSH EBX
; MOV EBX, [EBP] + 8
; MOV ECX, [EBP] + 12
; MOV EDX, [EBP] + 16
; MOV AL, 0
; L: cmp [EBX + ECX - 1], DL
; jne L1
; INC AL
; L1: LOOP L
; POP EBX
; POP ECX
; POP EDX
; POP EBP
; RET 12
; F ENDP
start: OUTSTR offset FStr
NEWLINE
;11.15
; MOV ECX, N
; MOV EAX, 0
; L2:
; ININT EAX
; MOV X[ECX - 1], AL
; LOOP L2
; PUSH 3
; PUSH N
; PUSH offset X
; call F
; OUTI EAX
;11.19
; PUSH 16
; PUSH offset X
; call MAXLET
; OUTCHAR AL
MOV EAX, 1234
MOV BL, 10
CALL OUTD
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