Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 19.09.2013
Сообщений: 48
1

необходимо исправить программу написаную на асемблере

31.10.2013, 17:22. Показов 768. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужно сделать в место прямоугольника флажок!
Turbo Assembler Version
L4.ASM

Assembler
 1 0000                         CSEG segment
      2                                         assume CS:CSEG, DS:CSEG, SS:CSEG, ES: CSEG
      3                                         org 100h
      4 0100  EB 08 90                       Begin:  jmp             Start
      5                                                      ;----- данные -----
      6 0103  20                                             Ns              db      32      ; номер символа
      7 0104  28                                             Nc              db      40      ; номер столбца
      8 0105  06                                             Nr              db      6       ; номер строки
      9 0106  0D                                             rc              db      13      ; номер столбца с которого начинается
     10                              строк
     11 0107  29                                             pp              db      41
     12 0108  07                                             oo              db      7
     13 0109  30                                             ll              db       48
     14
     15 010A  E8 006D                                 Start: call            ClrScr          ; очистка экрана
     16 010D  B4 02                                          mov             ah, 2           ; установить положение курсора / функция
     17                              вывод символа для 21h прерывания
     18 010F  B7 00                                          mov             bh, 0           ; номер видеостраницы
     19 0111  B9 00FF                                        mov             cx, 255         ; количество повторений цикла =
     20                              количеству выводимых символов
     21 0114  8A 36 0105r                            Vyvod:  mov             dh, Nr          ; номер строки
     22 0118  8A 16 0104r                                    mov             dl,  Nc         ; номер столбца
     23 011C  CD 10                                          int             10h
     24 011E  8A 16 0103r                                    mov             dl, Ns          ; номер символа
     25 0122  CD 21                                          int             21h             ; вывод символа
     26 0124  80 3E 0104r 28                                 cmp             Nc, 40          ; если вывод осуществлен в 35 столбец,
     27 0129  74 03                                          jz              NextR           ; если ноль то перейти на новую строку
     28 012B  EB 12 90                                       jmp             NextC           ; иначе увеличить номер столбца
     29 012E                                         NextR:
     30 012E  FE 0E 0106r                                    dec             rc              ; уменьшаем номер столбца
     31 0132  FE 06 0105r                                    inc             Nr              ; переход на новую строк
     32 0136  A0 0106r                                       mov             al, rc          ; первый номер столбца
     33 0139  A2 0104r                                       mov             Nc, al          ; Nc=первый номер столбца
     34 013C  EB 05 90                                       jmp             NextS           ; переход на следующий символ
     35 013F  FE 06 0104r                            NextC:  inc             Nc
     36 0143  FE 06 0103r                            NextS:  inc             Ns              ; следующий символ
     37 0147  E2 CB                                          loop            Vyvod           ; переход на вывод символа
     38
     39
     40
     41 0149  B9 0010                                        MOV     CX,16                    ;Количество строк в фигуре
     42
     43 014C  8A 36 0108r                            Vyvod2: mov             dh, oo          ; номер строки
     44 0150  8A 16 0107r                                    mov             dl,  pp         ; номер столбца
     45 0154  CD 10                                          int             10h
     46 0156  8A 16 0103r                                    mov             dl, Ns          ; номер символа
     47 015A  CD 21                                          int             21h             ; вывод символа
     48 015C  A0 0109r                                       mov             al,ll
     49 015F  FE C0                                          inc             al
     50 0161  FE 06 0107r                                    inc             pp
     51 0165  38 06 0107r                                    cmp             pp,al
     52
     53
     54 0169  74 06                                          je              NextC2          ;равно
     55 016B  7C 00                                          jl              NextR2          ;меньше
     56 016D  FE 06 0108r                            NextR2: inc             oo
     57
     58 0171  FE 06 0103r                            NextC2: inc             Ns
     59
 
Turbo Assembler  Version 1.0        10.10.13 18:52:06         Page 2
L4.ASM
 
     60 0175  49                                             dec             cx
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72 0176  E2 D4                                          loop            Vyvod2          ; переход на вывод символ
     73
     74
     75 0178  CD 20                                          int             20h
     76
     77                                                              ;---- процедуры -----
     78
     79                              ;---- процедура очистки экрана----
     80 017A                         ClrScr          proc
     81 017A  50                                             push    ax
     82 017B  53                                             push    bx
     83 017C  51                                             push    cx
     84 017D  52                                             push    dx
     85 017E  B4 06                                          mov             ah, 6   ;прокрутка экрана вверх
     86 0180  B0 00                                          mov             al, 0   ;0-заполняет весь экран пробелами
     87 0182  B9 0000                                        mov             cx, 0   ;верхний левый угол 0,0
     88 0185  B6 18                                          mov     dh, 24  ;номер строки нижнего правого угла
     89 0187  B2 4F                                          mov             dl, 79  ;номер столбца нижнего правого угла
     90 0189  B7 07                                          mov             bh, 7   ;атрибут экрана черно-белый
     91 018B  CD 10                                          int             10h
     92 018D  5A                                             pop     dx
     93 018E  59                                             pop             cx
     94 018F  5B                                             pop             bx
     95 0190  58                                             pop             ax
     96 0191  C3                                             Ret
     97 0192                         ClrScr EndP
     98
     99 0192                         CSEG ends
    100                                              end Begin
 
Turbo Assembler  Version 1.0        10.10.13 18:52:06         Page 3
Symbol Table
 
 
Symbol Name             Type   Value                       Cref  defined at #
 
??DATE                  Text   "29.12.10"
??FILENAME              Text   "L4      "
??TIME                  Text   "13:52:06"
??VERSION               Number 0100
@CPU                    Text   0101H
@CURSEG                 Text   CSEG                        #1
@FILENAME               Text   L4
@WORDSIZE               Text   2                           #1
BEGIN                   Near   CSEG:0100                   #4  100
CLRSCR                  Near   CSEG:017A                   15  #80
LL                      Byte   CSEG:0109                   #13  48
NC                      Byte   CSEG:0104                   #7  22  26  33  35
NEXTC                   Near   CSEG:013F                   28  #35
NEXTC2                  Near   CSEG:0171                   54  #58
NEXTR                   Near   CSEG:012E                   27  #29
NEXTR2                  Near   CSEG:016D                   55  #56
NEXTS                   Near   CSEG:0143                   34  #36
NR                      Byte   CSEG:0105                   #8  21  31
NS                      Byte   CSEG:0103                   #6  24  36  46  58
OO                      Byte   CSEG:0108                   #12  43  56
PP                      Byte   CSEG:0107                   #11  44  50  51
RC                      Byte   CSEG:0106                   #9  30  32
START                   Near   CSEG:010A                   4  #15
VYVOD                   Near   CSEG:0114                   #21  37
VYVOD2                  Near   CSEG:014C                   #43  72
 
Groups & Segments       Bit Size Align  Combine Class      Cref  defined at #
 
CSEG                    16  0192 Para   none               #1  2  2  2  2
Миниатюры
необходимо исправить программу написаную на асемблере  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2013, 17:22
Ответы с готовыми решениями:

Ускорить программу написаную с использованием selenium
написал часть программы по парсингу сайта, используя селениум вебдрайвер(нужны были функции клика...

Как вставить в HTML5 программу, написаную на Паскале?
Как вставить в HTML5 программу, написаную на Паскале?

Необходимо исправить программу
Программа с новой строки задает вопрос и ждет ответа в виде символа в той же строке, где находится...

Табуляция! Необходимо исправить программу
По первой формуле считает верно, переходит на вторую и третью-выдаёт не верные результаты, проверял...

1
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
01.11.2013, 05:44 2
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
; masm dos com #
.model tiny
.code
.286
org 100h
Begin: ;очистка экрана
    mov ax,3
    int 10h
    mov ah,0Ch
    mov al,1
    push 0B800h
    pop es
    mov di,160*5+40
    mov cx,8
a0: push cx
    mov cx,20
a1: stosw
    inc ax
    loop a1
    add di,120
    pop cx
    loop a0
    mov ah,0Eh
    mov cx,5
a2: stosw
    inc ax
    add di,158
    loop a2
    mov ah,0
    int 16h
    int 20h
end Begin
Коментарии пиши сама!
Миниатюры
необходимо исправить программу написаную на асемблере  
0
01.11.2013, 05:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2013, 05:44
Помогаю со студенческими работами здесь

Необходимо исправить программу! Тема массивы
#include <iostream> #include <StdAfx.h> using namespace std; int main() { setlocale (...

Обязательно ли устанавливать Framework для того чтобы выполнить программу написаную на C# языке
Допустим я написал программу на языке C# и что бы ее выполнить обязательно должен быть установлен...

Как динамически подключить dll написаную на C#
Есть проект на C#. С помощью LoadLibrary я подгружаю С++ dll-ки, в результате получаю IntPtr на...

Необходимо исправить ошибку
Нужно вычислить выражение ( defun calc ( n m ) ( sqrt ( abs ( / (cos ( exp ( - ( 0.9n 0.4m...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru