1 / 1 / 1
Регистрация: 23.06.2011
Сообщений: 16
1

Вывод строки (не то выводит)

23.06.2011, 17:21. Показов 1504. Ответов 12
Метки нет (Все метки)

есть прога:
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
cseg segment
 
org 100h
 
start:  mov ah,09h
    mov dx,offset q1
    int 21h
 
    mov ah,1ah
    mov dx,offset dta
    int 21h
 
    mov ah,4eh
    mov dx,offset fname
    int 21h
 
    mov si,offset dta
    add si,1ah
    mov ax,[si]
    mov dx,[si+2]
    
    mov si,offset key
    mov cx,l_key
    dec cx
    xor bx,bx
    mov bl,byte ptr[si]
add_loop:
    inc si
    add bl,byte ptr[si]
    adc bh,0
    loop add_loop
    mov l_part,bx
    
    div bx
    push ax
 
    mov ah,3dh
    mov al,2
    mov dx,offset fname
    int 21h
    mov hndl,ax
 
    pop cx       
nxt_txt:
    push cx 
 
    mov ah,3fh
    mov bx,hndl
    mov cx,l_part
    mov dx,offset buf
    int 21h
 
    mov cx,l_key
    mov si,offset buf
    mov di,offset key
    clc
nxt_gr: push cx
    cmc
    mov cx,0
    mov cl,byte ptr[di]
invert: jnc cntn
    not byte ptr[si]
cntn:   inc si
    loop invert
    pop cx
    inc di
    loop nxt_gr
 
    mov ah,42h
    mov al,0
    mov bx,hndl
    mov cx,0    
    mov dx,pntr
    push dx     
    int 21h
    pop dx
    add dx,l_part
    mov pntr,dx
    
    mov ah,40h
    mov bx,hndl
    mov cx,l_part
    mov dx,offset buf
    int 21h         
 
    pop cx
    loop nxt_txt
 
    ret
 
dta db 128 dup (0)
 
fname db 'test.txt',0
hndl dw ?
pntr dw 0
l_part dw ?
 
q1 db 'filename:',0
 
key db 13,44,5,16,7
l_key=$-key
 
buf db ?
 
cseg ends
 
end start
проблема в выводе (скрин ниже)

помогите пожалста
Миниатюры
Вывод строки (не то выводит)  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2011, 17:21
Ответы с готовыми решениями:

Вывод в файл не выводит
Задача: вывести в файл текст "hello world 2" где 2 - значение некой переменной. Текст без кавычек...

Вывод текста из базы (выводит ? ?)
Делаю запрос в базу, вывожу на страничке текст, но он выдает вопросики вместо русских букв В файле...

Не выводит вывод консольного приложения
Здравствуйте, возникла такая проблема: установлен интерпретатор руби и если скормить ему (через...

Вывод чисел Фибоначчи до 100 (не выводит 89)
Помогите понять, почему когда пишу вывод чисел Фибоначчи до 100, он не выводит 89 #include...

12
2013 / 1285 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
23.06.2011, 17:27 2
Xena, в самом начале

Цитата Сообщение от Xena Посмотреть сообщение
mov ah,09h
mov dx,offset q1
int 21h
строка должна заканчиваться '$'
Дальше не смотрел
1
1 / 1 / 1
Регистрация: 23.06.2011
Сообщений: 16
23.06.2011, 18:21  [ТС] 3
спасибо, помогло


как видите в той программе переменная fname уже определена

мне надо сделать так чтобы она вводилась
пробую вставить

Assembler
1
2
3
4
5
6
mov ah,0ah
    lea dx,fname
    int 21h ;
    
    xor bx,bx
    mov bl,[fname+1]
и изменить
Assembler
1
fname db 40,?,40 Dup(?)
но не работает
0
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,046
23.06.2011, 18:37 4
Assembler
1
2
3
4
5
6
7
8
9
10
11
mov ah,10
mov dx,offset fname
int 21h
add dx,2
xor bx,bx
mov bl,fname+1
add bx,2
mov byte ptr fname[bx],0
xor cx,cx
mov ah,3ch
int 21h
0
1 / 1 / 1
Регистрация: 23.06.2011
Сообщений: 16
23.06.2011, 19:02  [ТС] 5
Цитата Сообщение от Vadimych Посмотреть сообщение
Assembler
1
2
3
4
5
6
7
8
9
10
11
mov ah,10
mov dx,offset fname
int 21h
add dx,2
xor bx,bx
mov bl,fname+1
add bx,2
mov byte ptr fname[bx],0
xor cx,cx
mov ah,3ch
int 21h

использовала, работает, но появились некоторые ошибки

при каждом нажатии Enter выводит странные символы (скрин ниже) и программа не завершается

и из файла test.txt все удаляет
Миниатюры
Вывод строки (не то выводит)  
Вложения
Тип файла: txt code_asm.txt (1.7 Кб, 11 просмотров)
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
23.06.2011, 20:37 6
задание можно увидеть?
0
1 / 1 / 1
Регистрация: 23.06.2011
Сообщений: 16
23.06.2011, 20:46  [ТС] 7
Цитата Сообщение от zzzyyyxxx Посмотреть сообщение
задание можно увидеть?
прога для шифрование файлов на ассемблере
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
23.06.2011, 20:54 8
как я понимаю мы вводим имя файла, в котором будут данные для шифрования?
0
1 / 1 / 1
Регистрация: 23.06.2011
Сообщений: 16
23.06.2011, 20:59  [ТС] 9
Цитата Сообщение от zzzyyyxxx Посмотреть сообщение
как я понимаю мы вводим имя файла, в котором будут данные для шифрования?
да, который будет шифроваться
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
23.06.2011, 21:07 10
ну так открытие происходит, при помощи функции 3ch (косяк):
Assembler
1
2
3
4
Если файл уже существует, функция 3Ch все равно открывает его, присваивая ему нулевую длину.
Чтобы этого не произошло, следует пользоваться функцией 5Bh.
 
Зубков С.В.
0
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,046
23.06.2011, 21:25 11
Xena, я Вам показал, как корректно ввести имя файла, не вдаваясь в подробности Вашего кода. Если речь идёт об уже существующем файле, то используйте сразу 3dh для его открытия.
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
23.06.2011, 21:29 12
принцип кодирования на чём основан? код разбирать в лом, проще начать с нуля.
0
1 / 1 / 1
Регистрация: 23.06.2011
Сообщений: 16
23.06.2011, 21:35  [ТС] 13
кусок
Assembler
1
2
mov ah,3ch
int 21h
Я удалила

вот мой код:

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
cseg segment
 
org 100h
 
 
start:  
 
    ;Прочитать имя файла
    mov ah,10
    mov dx,offset fname
    int 21h
    add dx,2
    xor bx,bx
    mov bl,fname+1
    add bx,2
    mov byte ptr fname[bx],0
    xor cx,cx
        
    
    mov ah,1ah
    mov dx,offset dta
    int 21h
 
;Найти файл 
 
    mov ah,4eh
    mov dx,offset fname
    int 21h
 
;Прочитать из области dta его длину
 
    mov si,offset dta
    add si,1ah      ;по этому адресу хранится размер файла в байтах
    mov ax,[si]     ;считать в ax мл. ч. длины файла
    mov dx,[si+2]       ;считать в dx ст. ч. длины файла
 
;Подсчитаем сумму содержимого элементов key, это будет длина считываемого за
;один раз куска файла
 
    mov si,offset key
    mov cx,l_key
    dec cx
    xor bx,bx
    mov bl,byte ptr[si]
add_loop:
    inc si
    add bl,byte ptr[si]
    adc bh,0
    loop add_loop
    mov l_part,bx       ;сохраним длину считываемого куска файла
 
;Вычислим число считываний файла 
 
    div bx
    push ax
 
;Шифровка\дешифровка файла
 
    mov ah,3dh  ;откроем файл
    mov al,2    ;для чтения и записи
    mov dx,offset fname
    int 21h
    mov hndl,ax
 
    pop cx       
nxt_txt:
    push cx 
 
    mov ah,3fh  ;функция чтения    
    mov bx,hndl
    mov cx,l_part   ;число считываемых байт
    mov dx,offset buf;считываем сюда
    int 21h     ;считаем кусок файла в buf
 
    mov cx,l_key
    mov si,offset buf
    mov di,offset key
    clc     ;установленный CF будет означать нечетную группу
nxt_gr: push cx
    cmc     ;инвертируем CF
    mov cx,0
    mov cl,byte ptr[di]
invert: jnc cntn
    not byte ptr[si]
cntn:   inc si
    loop invert
    pop cx
    inc di
    loop nxt_gr
 
;Запись измененного куска
 
    mov ah,42h  ;функция установки указателя
    mov al,0    ;от начала файла
    mov bx,hndl
    mov cx,0    
    mov dx,pntr
    push dx     
    int 21h
    pop dx
    add dx,l_part
    mov pntr,dx
    
    mov ah,40h  ;функция записи
    mov bx,hndl
    mov cx,l_part
    mov dx,offset buf
    int 21h         
 
    pop cx
    loop nxt_txt
 
    ret
 
dta db 128 dup (0)  ;сюда записывается инф. о файле после его отыскания
 
fname db 40,?,40 Dup(?)
hndl dw ?       ;дескриптор
pntr dw 0       ;положение указателя от начала файла
l_part dw ?     ;длина куска файла   
 
key db 13,44,5,16,7 ;ключ
l_key=$-key
 
buf db ?    ;буфер для считывания куска файла
 
cseg ends
 
end start
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2011, 21:35

Вывод выводит в Excel с верхним подчеркиванием
передаю данные из таблицы html в json оттуда отдаю их в файл xlsx но при выводе в ячейку он...

не выводит строки
Доброго времени суток, я дико туплю и хз как исправить. Программа выводит строки, но они пустые(см....

не выводит строки
вот код while (not setado.Eof) do begin ...

Вывод массива на экран (Код работает ,но не выводит)
Здравствуйте! Подскажите, пожалуйста, почему не выводит массив? .model small .STACK 100h data...

Вывод из ячейки формы в ячейку Excel (выводит но не то)
имеется форма в ней выпадающий список ФИО берущий данные из таблицы ФИО в таблице ФИО столбцы...

вывод на экран (выводит числа из файла округленными)
Программа выводит на экран числа из файла, так что числа стоящие на нечетных местах выводятся с...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.