Нужно создать такую таблицу - Assembler

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

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

Помогите пожалуйста

Решение задачи: «Нужно создать такую таблицу»

textual
Листинг программы
.model tiny
 
.code
 
        org     100h
main    proc
 
        jmp     start
        ;Данные
        CrLf            db      0Dh, 0Ah, '$'
        ;константы для рисования границ областей (рамок) в кодировке cp866
        UpperLeftCorner         equ     218     ;левый верхний угол
        UpperRightCorner        equ     191     ;правый верхний угол
        LowerLeftCorner         equ     192     ;левый нижний угол
        LowerRightCorner        equ     217     ;правый нижний угол
        HorizontalLine          equ     0C4h    ;горизонтальная
        VerticalLine            equ     0B3h    ;вертикальная
        DownAndHorizontal       equ     0C2h    ;вниз и горизонтально
        UpAndHorizontal         equ     0C1h
        VerticalAndRight        equ     0C3h
        VerticalAndHorizontal   equ     0C5h    ;перекрестье
        VerticalAndLeft         equ     0B4h
        Border_Header           db      UpperLeftCorner, HorizontalLine
                                db      DownAndHorizontal, 16 dup(HorizontalLine)
                                db      UpperRightCorner
                                db      0Dh, 0Ah
                                db      VerticalLine, ' ', VerticalLine
                                db      '0123456789ABCDEF', VerticalLine
                                db      0Dh, 0Ah
                                db      VerticalAndRight, HorizontalLine, VerticalAndHorizontal
                                db      16 dup(HorizontalLine), VerticalAndLeft
                                db      0Dh, 0Ah
                                db      '$'
        Border_Footer           db      LowerLeftCorner, HorizontalLine
                                db      UpAndHorizontal, 16 dup(HorizontalLine)
                                db      LowerRightCorner
                                db      0Dh, 0Ah
                                db      '$'
 
start:
        ;программа
        mov     ah,     09h
        lea     dx,     [Border_Header]
        int     21h
        mov     bl,     0
        mov     cx,     16
        @@ForRow:
                push    cx
                mov     ah,     02h
                mov     dl,     VerticalLine
                int     21h
                mov     dx,     16
                sub     dx,     cx
                add     dl,     '0'
                cmp     dl,     '9'
                jbe     @@ShowDigit
                add     dl,     'A'-'9'-1
        @@ShowDigit:
                int     21h
                mov     dl,     VerticalLine
                int     21h
                mov     cx,     16
                @@ForColumn:
                        push    cx
                        push    bx
                        ;вывод символа без перемещения курсора
                        mov     ah,     0Ah
                        mov     al,     bl
                        mov     bh,     0
                        mov     cx,     1
                        int     10h
                        ;перемещение курсора на одну позицию вправо
                        mov     ah,     03h
                        mov     bh,     0
                        int     10h
                        inc     dl
                        mov     ah,     02h
                        int     10h
 
                        pop     bx
                        inc     bl
                        pop     cx
                loop    @@ForColumn
 
                mov     ah,     02h
                mov     dl,     VerticalLine
                int     21h
 
                mov     ah,     09h
                lea     dx,     [CrLf]
                int     21h
                pop     cx
        loop    @@ForRow
 
        lea     dx,     [Border_Footer]
        int     21h
 
        int     20h
main    endp
 
end     main

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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