Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
ВнизЧто ответить?? :(( (по поводу ASMа) Найти похожие ветки
← →
vidiv © (2004-05-30 15:14) [0]Я написал программу на asm, она из контрольной. у меня она работает номально и компилируется тоже нормально.
Однако однако человек который ее проверял отверг ее словами "Программа не проходит линковку. Пожалуйста, укажите, каким образом Вы получаете исполняемый файл."
Если вам не труно немоглы бы вы мне уточнить, что ответить на заданный вопрос??
вот исходник
proc.asm:.model tiny
.code
n db ?
mstate db 0
rdx dw 0
stri db 255 DUP(254)
res1 db 255 DUP("$")
res2 db 255 DUP("$")
res3 db 255 DUP("$")
str1 db "Enter your string: $" ; Понятно и так
str2 db "Result 1: $" ; Понятно и так
str3 db "Result 2: $" ; Понятно и так
str4 db "Result 3: $" ; Понятно и так
retu db 0dh, 0ah, "$"
start:
push cs
pop ds
mov ah, 09h
mov dx, offset str1
int 21h
mov bx, offset stri
mov [bx], 255
mov dx, bx
mov ah, 0Ah
int 21h
call crline
xor ax, ax
add bx, 1
mov al, [bx]
mov dx, offset res1
xor cx, cx
do:
mov bx, offset stri
add bx, 2
add bx, cx
mov bl, [bx]
mov n, bl
add cl, 1
cmp cl, al
ja show_result
; cmp mstate, 0
; ja noadd_label
cmp n, ":"
jz next_state
call add_n;
jmp do
add_n:
mov bx, dx
push ax
mov al, n
mov [bx], al
pop ax
add dx, 1
cmp mstate, 1
jz add_2
ret
add_2:
push dx
mov dx, rdx
mov bx, dx
push ax
mov al, n
mov [bx], al
pop ax
add dx, 1
mov rdx, dx
pop dx
ret
next_state:
add mstate, 1
cmp mstate, 1
jz setdx_res
call add_n
jmp do
setdx_res:
call add_n
mov dx, offset res3
mov rdx, dx
mov dx, offset res2
jmp do
show_result:
mov ah, 09h
mov dx, offset str2
int 21h
mov dx, offset res1
int 21h
call crline
mov ah, 09h
mov dx, offset str3
int 21h
mov dx, offset res2
int 21h
call crline
mov ah, 09h
mov dx, offset str4
int 21h
mov dx, offset res3
int 21h
call crline
jmp exit
crline:
mov ah, 09h
mov dx, offset retu
int 21h
ret
exit:
mov ax,4C00h ;Выходим
int 21h
end start
← →
vidiv © (2004-05-30 15:16) [1]вот краткое описание:
Ввести массив символов (строку) stri.
Присвоить переменной состояния mstate (тип byte) значение 0.
Далее перебирать по порядку символы строки stri и если встретиться “:” то увеличивать mstate на единицу. Если mstate равно 0, то текущий символ добавить к строке res1, если 1, то к строкам res2 и res3, и если 2 и более то строке res2.
Вывести строки res1, res2, res3 в качестве результата на задания а, б и в.
← →
Gero © (2004-05-30 15:20) [2]
> что ответить на заданный вопрос??
"Понимаете, мне очень нужна четверка. Я могу предожить Вам <сумма денег, которую можете предложить>".
Но это только один из возможных вариантов.
← →
sniknik © (2004-05-30 15:30) [3]> .model tiny
это вроде для создания "*.com"? и конструкция для MASM? нет? давно не писал, забыл. но к примеру в TASM-е эта конструкция не то что линковку, компиляцию не пройдет. (хотя обьектник вроде получается стандартный, и должен линковаться)
подведи его к компьютеру и собери программу сам, своими средствами. т.е. действительно покажи как получаеш исполняемый файл. думаю это поможет снять "недоразумение" между вами.
← →
Petr V. Abramov © (2004-05-30 15:39) [4]> ее словами "Программа не проходит линковку. Пожалуйста,
> укажите, каким образом Вы получаете исполняемый файл."
> что ответить
"Путем компипяции и линковки, а у Вас руки кривые, раз слинковать не умеете и меня еще спрашиваете, как это сделать. LMD"
> Программа не проходит линковку
Из серии "ошибка в 17-й строке", только не у Вас, а у него.
← →
GuAV © (2004-05-30 16:37) [5]
> > Программа не проходит линковку
> Из серии "ошибка в 17-й строке", только не у Вас, а у него.
Ошибку удалось повторить:C:\PROG\TASM\BIN>tasm proc
Turbo Assembler Version 4.1 Copyright (c) 1988, 1996 Borland International
Assembling file: proc.ASM
*Warning* proc.ASM(26) Argument needs type override
Error messages: None
Warning messages: 1
Passes: 1
Remaining memory: 401k
C:\PROG\TASM\BIN>tlink /t proc
Turbo Link Version 7.1.30.1. Copyright (c) 1987, 1996 Borland International
Fatal: Cannot generate COM file : data below initial CS:IP defined
← →
sniknik © (2004-05-30 18:01) [6]точно значит com, у него насколько помню первой командой (которая в 100h линкуется) должна быть jmp на код или рабочий код а тут данные.
> Из серии "ошибка в 17-й строке", только не у Вас, а у него.
нет ошибка как раз у вас.
← →
GuAV © (2004-05-30 18:29) [7]Вообще можно исправить так:
.code -> .data
start: -> .code
startupcode
end start -> end
← →
Petr V. Abramov © (2004-05-30 18:34) [8].model tiny
.code
org(100h)
start:
jmp start_code
n db ?
mstate db 0
rdx dw 0
stri db 255 DUP(254)
res1 db 255 DUP("$")
res2 db 255 DUP("$")
res3 db 255 DUP("$")
str1 db "Enter your string: $" ; Понятно и так
str2 db "Result 1: $" ; Понятно и так
str3 db "Result 2: $" ; Понятно и так
str4 db "Result 3: $" ; Понятно и так
retu db 0dh, 0ah, "$"
start_code:
push cs
pop ds
и далее по тексту
>> Из серии "ошибка в 17-й строке", только не у Вас, а у него.
> нет ошибка как раз у вас.
А как было по-другому добиться, чоб сообщение о ней в студии было :)
Кстати, у меня даже запустился этот .com-файл :)
← →
GuAV © (2004-05-30 18:50) [9]
> А как было по-другому добиться, чоб сообщение о ней в студии
> было :)
Сообщение получить нетрудно если есть исходник и компилятор :)
← →
Petr V. Abramov © (2004-05-30 19:02) [10]Дак я его (компилятор) искал и скачивал полтора часа :)
А вообще-то "не компилится", "не линкуется", "не работает"...
Без обид :)
← →
vidiv © (2004-05-31 06:42) [11]
> GuAV © (30.05.04 16:37) [5]
Большое спасибо за ценную инфомацию о том что такое линкование:)
> sniknik © (30.05.04 18:01) [6]
> Petr V. Abramov © (30.05.04 18:34) [8]
Большое спасибо за способ решения проблемы! - проблема решена!!!
Все сделал как посоветовали:)
Всем спасибо:)
← →
vidiv © (2004-05-31 06:49) [12]
> Petr V. Abramov © (30.05.04 18:34) [8]
> .model tiny
> .code
> org(100h)
> start:
> jmp start_code
Только хотелось внести ясность: что означает строка org(100h) ??
← →
atruhin © (2004-05-31 07:39) [13]org(100h) - следующую инструкцию разместить по смещению 100h
com файл всегда начинает выполнятся со смещения 100h в данном случае там будет находится jmp start_code
← →
vidiv © (2004-05-31 10:04) [14]
> atruhin © (31.05.04 07:39) [13]
Спасибо!! теперь все ясно!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.028 c