Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 2
Регистрация: 18.08.2010
Сообщений: 76
1

комментарии к программам

06.02.2011, 18:13. Показов 1013. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть 2 программки, одна складывает 32-битные числа и выводит на экран "картинку".

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
number_of_lines = 5
line_length = 5
 
.model tiny
code    segment para public 'code'
.386                ;for SHL command
 
org 100h
 
start:  
    mov ax,03h      ;set text regime N3 (80x25)
    int 10h
    
    mov dx,0b800h   ;video memory address in ES register
    mov es,dx
    
    mov bx,73afh    
    mov cx,38a0h
    mov ax,6493h
    mov dx,8375h
    
    add cx,dx       ;addition of junior parts
    adc bx,ax       ;addition with shift
    
    push    bx
    and bx,0f000h
    shr bh,4
    mov al,bh
    call    alg_das
    pop bx
    
    push    bx
    and bx,0f00h
    mov al,bh
    call    alg_das
    pop bx
    
    push    bx
    and bx,00f0h
    shr bl,4
    mov al,bl
    call    alg_das
    pop bx
    
    push    bx
    and bx,000fh
    mov al,bl
    call    alg_das
    pop bx
    
    push    cx
    and cx,0f000h
    shr ch,4
    mov al,ch
    call    alg_das
    pop cx
    
    push    cx
    and cx,0f00h
    mov al,ch
    call    alg_das
    pop cx
    
    push    cx
    and cx,00f0h
    shr cl,4
    mov al,cl
    call    alg_das
    pop cx
    
    push    cx
    and cx,000fh
    mov al,cl
    call    alg_das
    pop cx
    
        mov     dx,offset new_line  ;copy new line offset to video memory                    
        mov     ah,9                                             
        int     21h 
      
    mov ax,0008h        ;negative number output
    mov bx,0009h
    cmp ax,bx
    jb  m2
    jae m3
m1:
    mov     dx,offset new_line  ;copy new line offset to video memory                       
        mov     ah,9                                             
        int     21h
        
    mov cx,number_of_lines  ;matrix output
    mov si,0
copy_lines:
    mov dx,screens[si]
    mov ah,09h
    int 21h
    inc si
    inc     si
    loop    copy_lines
    
    xor ax,ax
    int     16h
m2:
    sub ax,bx
    neg ax
    push    ax
    mov dl,2dh      ;negation sign output 
    mov ah,02h
    int 21h
    pop ax
    cmp al,10
    sbb al,69h
    das         ;put symbol`s ASCII-cod into al
    mov dl,al
    mov ah,02h
    int 21h
    jmp m1
m3:
    sub ax,bx
    call    alg_das
    jmp m1
    
alg_das:    
    cmp al,10
    sbb al,69h
    das         ;put symbol`s ASCII-cod into al
    mov dl,al
    mov ah,02h
    int 21h     ;print AL`s content 
    
    ret
    
screen1 db  "  **    ",0dh,0ah,'$'
screen2 db  "   **   ",0dh,0ah,'$'
screen3 db  "    **  ",0dh,0ah,'$'
screen4 db  "     ** ",0dh,0ah,'$'
screen5 db  "      **",0dh,0ah,'$'
 
screens dw  screen1,screen2,screen3,screen4,screen5
 
new_line db     13,10,"$"
 
rowlen  db  80
 
code ends   
end start
вторая считывает вводимый текст с клавиатуры и выводит слова с максимальным и минимальным количеством букв

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
;  A 16-bit DOS HelloWorld program originally by RedOx.  Produces a small model .EXE executable.
 
; To assemble and link from within WinAsm Studio, you must have a special 16-bit linker, 
; such as the one in the archive at this URL- [url]http://win32assembly.online.fr/files/Lnk563.exe[/url]
; Run the archive to unpack Link.exe, rename the Link.exe file to Link16.exe and copy it
; into the \masm32\bin folder.
 
.MODEL  small
.386
 
stk segment para stack 'stack'
    db  100h dup(?)
stk ends
 
data    segment para public 'data'
    msg         db "Lab 2 var 4.", 0Dh, 0Ah, "Input text:", 0Dh, 0Ah, "$"   ; The string must end with a $
    msg_min     db "Min length word: $"
    msg_max     db "Max length word: $"
    next_line   db 0Dh, 0Ah, "$"
    
    buffer      db 255
    blength     db ? 
    bcontents   db 255 dup(?)
    
    outbuffer   db 258 dup(?)
    
    minwordpos  dw ?
    minwordlen  db 255
    maxwordpos  dw ?
    maxwordlen  db 0
    
data    ends
 
code    segment para public 'code'
    assume  cs:code, ds:data, ss:stk
start:
    mov     ax, data        ; Get the address of the data segment
    mov     ds, ax          ; Set the DS segment
     
    mov     dx, offset msg  ; Get the address of our message in the DX
    mov     ah, 9           ; Function 09h in AH means "WRITE STRING TO STANDARD OUTPUT"
    int     21h             ; Call the DOS interrupt (DOS function call)
    
    mov     dx, offset buffer
    mov     ah, 0Ah
    int     21h
    
    mov     dx, offset next_line
    mov     ah, 9
    int     21h
    
    xor     di, di          ; di - current char index
    xor     si, si          ; si - word start index
    xor     cx, cx          ; cx - current word length
    
space_char_loop:
    ; bl - current character from input string
    mov     bl, byte ptr bcontents[di]
    cmp     bl, 20h
    je      word_end
 
    cmp     bl, 0Dh
    je      string_end
 
    inc     di
    inc     cx
    jmp     space_char_loop
    
word_end:
    call    CheckLen
    inc     di
    mov     si, di
    xor     cx, cx
    jmp     space_char_loop
 
string_end: 
    call    CheckLen
    
    ; output "min word" message
    mov     dx, offset msg_min
    mov     ah, 9
    int     21h
    
    ; output min length word
    mov     si, minwordpos
    mov     cl, minwordlen
    call    OutputWord
    
    ; output "max word" message
    mov     dx, offset msg_max
    mov     ah, 9
    int     21h
 
    ; output max length word
    mov     si, maxwordpos
    mov     cl, maxwordlen
    call    OutputWord
 
    mov     ax, 0C07h       ; Function 0Ch = "FLUSH BUFFER AND READ STANDARD INPUT"
    int     21h             ; Waits for a key to be pressed.
    
    mov     ax, 4C00h       ; the exit fuction [4C+no error (00)]
    int     21h             ; call DOS interrupt 21h
 
; checks if current word length updates min/max records (cl - current length, si - word start index)
CheckLen proc
    test    cl, cl
    jz      CLproc_exit
    
    cmp     cl, maxwordlen
    jbe     CLproc_check_less
    
    mov     maxwordpos, si
    mov     maxwordlen, cl
    
CLproc_check_less:
    cmp     cl, minwordlen
    jae     CLproc_exit
    
    mov     minwordpos, si
    mov     minwordlen, cl
 
CLproc_exit:
    Ret
CheckLen endp
    
; outputs word (si - word start index, cx - word length)
OutputWord proc
    xor     di, di
    
OWproc_copy_char:
    ; si - current index in input string
    ; di - current index in output string
    ; bl - current character from input string
    mov     bl, bcontents[si]
    mov     outbuffer[di], bl
    inc     si
    inc     di
    loop    OWproc_copy_char
    
    mov     outbuffer[di], 0Dh
    mov     outbuffer[di+1], 0Ah
    mov     outbuffer[di+2], '$'
    
    mov     dx, offset outbuffer
    mov     ah, 9
    int     21h
    
    Ret
OutputWord endp
 
code ends
 
end start
помогите пожалуйста комментариями, а то не вполне понятно как все происходит)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2011, 18:13
Ответы с готовыми решениями:

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

Комментарии к программам
Кто хорошо разбирается помогите! Нужно написать коментарии к прогам. Пытался разобраться сам но для...

Комментарии к программам
Здравствуйте, мне нужны подробные комментарии к практически каждой строке в программе, пожалуйста,...

Нужны комментарии к программам
обьясните пожалуйста проги, что делают какие строчки 2.1. Алгоритм уравнения прямой y = ax + b....

3
 Аватар для foozzi
51 / 22 / 0
Регистрация: 16.12.2010
Сообщений: 144
07.02.2011, 20:23 2
там же все написано.... переведи и читай
0
1 / 1 / 2
Регистрация: 18.08.2010
Сообщений: 76
07.02.2011, 21:25  [ТС] 3
там написано, что делает отдельная команда, а мне непонятно что делают вместе участки кода(((
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16344 / 7662 / 1076
Регистрация: 11.11.2010
Сообщений: 13,712
09.02.2011, 05:05 4
Anish, возьми учебник и прочитай, ЧТО означает каждая команда, это займет один-два часа, комментируют трудные участки кода, или нестандартный алгоритм
0
09.02.2011, 05:05
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2011, 05:05
Помогаю со студенческими работами здесь

Написать комментарии к 2 программам
вычислить сумму ряда, используя while и do-while. Слагаемые, по модулю меньше заданного...

Нужны комментарии к программам
1 программа using System; using System.Collections.Generic; using System.Linq; using...

Нужны комментарии к двум программам
1 программа using System; using System.Collections.Generic; using System.Linq; using...

Напишите пожалуйста комментарии к программам, хочу разобраться
9-ый вариант

Удалить из строки комментарии вида '/* . */". Игнорировать вложенные комментарии
Всем привет! есть строка вида : char str="abc/*111/*def/*222*/ghi*/333*/jkl"; нужно получить...

Удалить из строки комментарии вида '/* ... */". Игнорировать вложенные комментарии.
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru