ò
p 16 , . , . ' ( ):
: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
: * * * * O D I T S Z * A * P * C
.
CF (Carry Flag) - . ̳ "" (0 1) .
PF (Parity Flag) - . - . 0, - 1. - .
AF (Auxiliary Carry Flag) - . 1, ( 3) . ASCII .
ZF (Zero Flag) - . a . , , - . , , , 0 "" (.. ), "" (.. ). JE JZ . SF (SIgn Flag) - . ( ) p: 0, - 1. JG JL .
TF (Trap Flag) - . - , DEBUG. c, , .
IF (Interrupt Flag) - . , - .
DF (DIrection Flag) - . - . SI DI, , - , (. .11).
OF (Overflow Flag) - . Գ , / () . : CMP AF, CF, OF, PF, SF, ZF. , . - , , BX :
|
|
CMP BX,00; BX
JZ B50; B50 . (䳿 )
B50:...; BX=0
BX , CMP ZF , ( ) . JZ ( ) ZF. ZF, , , , B50.
2.
MASM . EXE COM .
n, a1, , an. , a1, , an, an+1.
assume CS:code, DS:Data
code segment
begin: mov ax,data
mov ds,ax
mov bl,2; 2
mov ax,0;
mov si,-1
ii: inc si;
cmp si,len;
je fin;
;
mov al,mas1[SI]; al
div bl; 2
cmp ah,0; = 1( ),
jne jj;
inc kol
jmp ii
jj: mov al,mas1[SI]
cmp max,al;
ja ii; ,
mov max,al; min
jmp ii
fin: mov bl,10;
xor ax,ax
mov al,max
div bl
add al,48
add ah,48
mov bl,ah
mov y,al
mov ah,09h
mov dx,offset y
int 21h
mov y,bl
mov ah,09h
mov dx,offset y
int 21h
mov al,10;
mov y,al
mov ah,09h
mov dx,offset y
int 21h
mov al,kol
add al,48
mov y,al
mov ah,09h
mov dx,offset y
int 21h
exit:
mov ah,4ch
int 21h
code ends
data segment
max db 0;
kol db 0
len dw 10;-
mas1 db 10,24,18,9,56,3,75,1,46,35;
y db " $"
data ends
stk segment stack
db 256 dup()
stk ends
end begin
3
(n,n) .
assume CS:code, DS:Data
code segment
begin: mov ax,data
mov ds,ax
mov bx,row
mov ax,col
mul bx
sub ax,col
mov dob,ax
mov bl,mas1
mov min,bl
mov cx,col
incCol:
push cx
mov di,cx
dec di
mov cx,row
mov min,254
incRow:
mov si,cx
dec si
mov bx,col
mov ax,si
mul bx
mov bx,ax
mov al,mas1[bx][di]
cmp min,al
jb less
mov min,al
mov ind,si
less: loop incRow
mov si,ind
dec si
ii: inc si
cmp si,row
je jj
mov bx,col
mov ax,si
mul bx
mov bx,ax
add bx,col
mov al,mas1[bx][di]
sub bx,col
mov mas1[bx][di],al
jmp ii
jj: pop cx
loop incCol
mov si,0
mov DI,0
dec col
fin: mov bl,10
xor ax,ax
mov al,mas1[DI]
div bl; 10
add al,48; 48,
|
|
add ah,48; 48
mov bl,ah
mov y,al;
mov ah,09h
mov dx,offset y
int 21h
mov y,bl;
mov ah,09h
mov dx,offset y
int 21h
mov bl,0;
mov y,bl
mov ah,09h
mov dx,offset y
int 21h
cmp si,col
jne s
mov bl,10; col
mov y,bl
mov ah,09h
mov dx,offset y
int 21h
mov si,-1
s: inc si
inc DI
cmp DI,dob
jne fin
mov ax,4c00h
int 21h
code ends
data segment
row dw 4
col dw 5
dob dw 1
min db 0
ind dw 0
mas1 db 61,31,13,99,1
db 11,22,6, 11,9
db 8, 12,5, 9,5
db 12, 3,12, 1,6
y db " $"
msg db?
data ends
stk segment stack
db 256 dup()
stk ends
end begin