Сформировать квадратную матрицу по заданному образцу - Assembler (246007)

Узнай цену своей работы

Формулировка задачи:

Сформировать квадратную матрицу порядка n по заданному образцу: 0 0 0 ... 0 0 1 0 0 0 ... 0 2 0 0 0 0 ... 3 0 0 ................... 0 n-1 0 ... 0 0 0 n 0 0 ... 0 0 0

Решение задачи: «Сформировать квадратную матрицу по заданному образцу»

textual
Листинг программы
;;Набор макросов для оптимизации переходов
;Установка флага переноса, если значение равно нулю
SetCYifZero      MACRO Value
       CMP  Value,1
       ENDM
;Установка флага переноса, если значение не равно нулю
SetCYifNZero     MACRO Value
       XOR  AX,AX
       CMP  AX,Value
       ENDM
;Увеличение счётчика на 1, если установлен флаг переноса
IncRegIfCY       MACRO Reg
       ADC  Reg,0
       ENDM
;Установка бита, если установлен флаг переноса
SetBitIfCY       MACRO Reg
       RLC  Reg,1
       ENDM
;Генерация битовой маски, если установлен флаг переноса
SetFFifCY        MACRO Reg
       SBB  Reg,Reg
       ENDM
;Меньшее из двух беззнаковых чисел
;if(b<a) a=b
R1_EQ_MIN_R1_R2  MACRO R1,R2,R3
       SUB  R2,R1
       SBB  R3,R3
       AND  R3,R2
       ADD  R1,R3
       ENDM
;Выбор между двумя числами
;if(a!=0) a=b; else a=c
SelR1_From_R2_R3 MACRO R1,R2,R3
       CMP  R1,1
       SBB  R1,R1
       XOR  R3,R2
       AND  R1,R3
       XOR  R1,R2
       ENDM

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы