Skip to content

Instantly share code, notes, and snippets.

@amostyaev
Created March 28, 2023 15:16
Show Gist options
  • Save amostyaev/0191ff90c1a41da46ee86bb2b36af978 to your computer and use it in GitHub Desktop.
Save amostyaev/0191ff90c1a41da46ee86bb2b36af978 to your computer and use it in GitHub Desktop.
Семинар от 28 марта
INCLUDE settings.inc
INCLUDE io2020.inc
.STACK 4096
.DATA
FStr DB 'The program starts working.',0
LStr DB 'The program has ended.',0
M = 3
N = 2
X DD M DUP (N DUP (?))
; Y DB 'SYM',0
; NOO DB 'UNSYM',0
.CODE
start: OUTSTR offset FStr
NEWLINE
MOV ECX, N*M
RPT: ININT X[ECX * type X - type X]
LOOP RPT
MOV ECX, N*M
RPT1: OUTI X[ECX * type X - type X]
LOOP RPT1
MOV EDX, 0
MOV EAX, 0
L1: MOV EBX, 0
L: OUTI X[EAX*8+EBX]
CMP X[EAX*8+EBX], 0
JGE AA
INC EDX
AA: ADD EBX, type X
CMP EBX, N*type X
JNE L
INC EAX
CMP EAX, M
JNE L1
OUTI EDX
; ; 6.23a
; MOV ECX, N
; RPT: ININT X[ECX * type X - type X]
; LOOP RPT
; MOV EAX, 0
; MOV ECX, N-1
; L: MOV EBX, X[ECX * type X]
; CMP EBX, X[EAX * TYPE X]
; JNE NO
; INC EAX
; DEC ECX
; CMP EAX, ECX
; JB L
; OUTSTR OFFSET Y
; NEWLINE
; JMP FIN
; NO: OUTSTR OFFSET NOO
; NEWLINE
; FIN: MOV ECX, N
; RPT1: OUTI X[ECX * type X - type X]
; LOOP RPT1
; NEWLINE
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