bsuir.info
БГУИР: Дистанционное и заочное обучение
(неофициальный форум)
Вход (быстрый)
Регистрация
[ Новые сообщения · Правила форума · Поиск · RSS ]
Страница 2 из 3«123»
Неофициальный форум БГУИР » Специальности » Программное обеспечение информационных технологий (ПОИТ) » КПиЯП (Конструирование программ и языки программирования)
КПиЯП
GoodManДата: Вторник, 02.02.2010, 20:58 | Сообщение # 16
Пятикурсник
Группа: Проверенные
Сообщений: 160
Статус: Оффлайн
CTARIK, есть выше ссылка на обсуждение тьютора. Там подробно во всех деталях что он делает с теми кто не готовится ))))
 
kamДата: Четверг, 04.02.2010, 18:51 | Сообщение # 17
Маньячка-второкурсник
Группа: Проверенные
Сообщений: 196
Статус: Оффлайн
Народ, подскажите!
Куда отсылать лабы по 1 части? И в каком виде?
А то пока сидела в академке все контакты растеряла.
Спасибо.


Сообщение отредактировал kam - Четверг, 04.02.2010, 18:54
 
кустикДата: Суббота, 06.02.2010, 03:12 | Сообщение # 18
Абитуриент
Группа: Проверенные
Сообщений: 6
Статус: Оффлайн
Шостак (Шостак Е.В. <shostak@bsuir.by>) а в каком виде...вордовский и екзешник вроде) принимает бахтизин если что
 
kamДата: Четверг, 18.02.2010, 19:38 | Сообщение # 19
Маньячка-второкурсник
Группа: Проверенные
Сообщений: 196
Статус: Оффлайн
пасиб
а че так глухо здесь? неужели никто не учит си?
 
lizaДата: Понедельник, 01.11.2010, 21:58 | Сообщение # 20
Первокурсник
Группа: Проверенные
Сообщений: 28
Статус: Оффлайн
мда, кпияп надо учить - иначе досвидос!
 
kamДата: Пятница, 19.11.2010, 12:27 | Сообщение # 21
Маньячка-второкурсник
Группа: Проверенные
Сообщений: 196
Статус: Оффлайн
Кто учил асемблер с нуля по конспекту?
Чета у меня как-то не идет этот асм...

Может кто подскажет более доходчивый коспект?

 
sim6713Дата: Суббота, 20.11.2010, 01:19 | Сообщение # 22
Первокурсник
Группа: Проверенные
Сообщений: 32
Статус: Оффлайн
Quote (kam)
Кто учил асемблер с нуля по конспекту?

Кто-то что-то ещё по конспектам учит? Кстати, привет одногрупнице(или одногрупнику) smile


ПОИТ, гр.801021c
 
GoodManДата: Понедельник, 22.11.2010, 18:18 | Сообщение # 23
Пятикурсник
Группа: Проверенные
Сообщений: 160
Статус: Оффлайн
Quote (kam)
Может кто подскажет более доходчивый коспект?

В другом разделе уже выкладывал ссылку http://kalashnikoff.ru/Assembler/ . А большинство конспектов на ДО можно использовать только для... ай, не буду о плохом smile

 
kamДата: Среда, 01.12.2010, 02:27 | Сообщение # 24
Маньячка-второкурсник
Группа: Проверенные
Сообщений: 196
Статус: Оффлайн
Quote (sim6713)
Кто-то что-то ещё по конспектам учит? Кстати, привет одногрупнице(или одногрупнику) smile

приветики от одногрупницы smile ага, мне удобнее. Еще очень помогает гугль smile

Quote (GoodMan)
В другом разделе уже выкладывал ссылку http://kalashnikoff.ru/Assembler/ . А большинство конспектов на ДО можно использовать только для... ай, не буду о плохом smile

Пасиб за ссылочку. Ток чета я уже к конспекту привыкла, после того как прочна его раз 10 вдоль и поперек.

Help!
Блин, туплю по-страшному уже вторую неделю.
Почему у меня не работает???
Насколько я поняла, у меня просто при сравнении (cmp) значения в регистре с 10 получается наоборот, или не наоборот, кароче выдает неверные флаги. хотя в этой же проге в другой процедуре то же самое cmp работает как надо.
Что я пропустила? Кому можно показать мой корявенький код? Есть спецы?

 
WasjaДата: Среда, 01.12.2010, 09:07 | Сообщение # 25
Admin
Группа: Администраторы
Сообщений: 1446
Статус: Оффлайн
kam, выложи код.

Все вышесказанное является моим личным мнением.
 
kamДата: Четверг, 02.12.2010, 13:11 | Сообщение # 26
Маньячка-второкурсник
Группа: Проверенные
Сообщений: 196
Статус: Оффлайн
Выкладываю весь код, чтоб было понятнее.
res - пока просто число чтобы проверить вывод на экран.
Не работает сравнение cmp там, где выделено. Там где подчеркнуто - работает.
Почему?

Code
data segment   
   buffer db 5 dup (?)
   crlf db 0dh, 0ah, '$'
   msgVvChislo db 'Vvedite chislo ot 0 do 255:','$'
   msgOshVvoda db "Error. Povtorite vvod." ,"$"
   msgVvElem db "Vvedite poelementy massiv chisel ot 0 do 255:","$"
   msgVyvodRes    db "Resultat =    ","$"
   msgKonPRG db "The End.", "$"
     
     
   msg5 db "ok." ,"$"

   
     
   jsimv db 0h

   res db 87h

   string db 10 dup (?), 0dh, 0ah, '$'
   table db "0123456789"
     
     
     
     
     
     
data ends
;------------
stprint segment stack
   db 100h dup (?)
stprint ends
;------------
code segment
start:
   assume cs:code,ds:data,ss:stprint
   mov ax, data
   mov ds, ax   

   call insert_proc
     
;    call main_proc

   mov dx, offset crlf
   mov ah, 09h
   int 21h

   mov dx, offset msgVyvodRes
   mov ah, 09h
   int 21h
     
   call show_proc   ;(y - chislo na vhod, string - stroka dlya vyvoda na vyhod)

   mov dx, offset string
   mov ah, 09h
   int 21h
     
   ProgEnd:
     
   mov dx, offset crlf
   mov ah, 09h
   int 21h

   mov dx, offset msgKonPRG
   mov ah, 09h
   int 21h
     
   mov dx, offset crlf
   mov ah, 09h
   int 21h
     
   mov ah, 4ch    ;zanosim nomer funkcii prerivaniya s zaversheniem raboty programmu
   int 21h  ;prerivanie s zaversheniem raboty programmu
     

insert_proc proc near
  Ret
insert_proc EndP
main_proc proc near    ;(mass, isize - vhod, res - vyhod)

   Ret
main_proc EndP

show_proc proc near    ;(y - chislo na vhod, string - stroka dlya vyvoda na vyhod)

   xor cx,cx
   xor ax,ax
   mov al, res
   mov dl, 0Ah
     
Delenue:   ; nachalo cikla
   mov ah, 0h   ;ostatok obnulyaem
   div dl   ;delim chislo iz registra "al" na 10
   push ax   ;rezultat deleniya pomeschaem v stek
   inc cx
   [b]cmp al, 0h[/b]  ;sravnivaem chastnoe deleniya s 0
   ja Delenue  ;esli bolshe 0, to povtoryaem cikl

   mov bx, offset table; ukazyvaem na tablicy preobrazovaniya
   mov di, offset string; ukazyvaem na stroku dlya preobrazovannogo chisla

TablPreobr:   
     
   pop ax   ; shityvaem  v "ax"  iz steka cifry
   mov al, ah
   xlatb    ;zamenyaem znacheniye iz "al" na sootv. znachenie iz tablicy
;    mov byte ptr [di], ah
   stosb   ;zanosim al v stroku vyvoda po adresu di
   inc di

   loop TablPreobr

   mov byte ptr [di], '$'    ;zanosim v stroku simvol okonchaniya stroki

   mov dx, offset string
   mov ah, 09h
   int 21h

   Ret
show_proc EndP
code ends
end start


Сообщение отредактировал kam - Пятница, 03.12.2010, 00:02
 
WasjaДата: Четверг, 02.12.2010, 17:19 | Сообщение # 27
Admin
Группа: Администраторы
Сообщений: 1446
Статус: Оффлайн
kam, а в чем проверяешь правильность выполнения? Просто у меня все отработало, вроде правильно. Например, это:
Quote
VvodElem:

;zapominaem x kak kol-vo elementov massiva
mov ah, x
mov masSize, ah
;esli kol-vo elementov massiva zadano 0, to zavershaem programmy
cmp ah, 0
je ProgEnd


При нуле выходит из программы как и должно.

PS. Только вот код ошибки завершения программы не нулевой - это так надо?


Все вышесказанное является моим личным мнением.
 
kamДата: Пятница, 03.12.2010, 00:00 | Сообщение # 28
Маньячка-второкурсник
Группа: Проверенные
Сообщений: 196
Статус: Оффлайн
Странно... Все работает? И res выводится на экран как надо?
Про код ошибки не совсем поняла... Типа не задаю flagOsh = 1 и выход к ProgEnd?
P.S. ход работы в турбо дебаггере проверяю

Добавлено (02.12.2010, 23:00)
---------------------------------------------
Фсе, разобралась. Мануал надо читать внимательнее.
Всем спасибо за помощь smile

Сообщение отредактировал kam - Четверг, 02.12.2010, 21:01
 
WasjaДата: Пятница, 03.12.2010, 08:51 | Сообщение # 29
Admin
Группа: Администраторы
Сообщений: 1446
Статус: Оффлайн
kam, похвасталась бы в чем была ошибка. happy

Все вышесказанное является моим личным мнением.
 
kamДата: Пятница, 03.12.2010, 18:42 | Сообщение # 30
Маньячка-второкурсник
Группа: Проверенные
Сообщений: 196
Статус: Оффлайн
Ошибка вот в чем была:
Команда stosb помещает байт информации из al не в строку, а в ячейку памяти, адресуемую парой es:di/edi.
Т.е. надо было дописать перед "TablPreobr:"
mov ax, ds
mov es, ax
А в самом цикле убрать inc di, т.к. stosb делает это автоматически.

в результате получаем:

Code

show_proc proc near    ;(y - chislo na vhod, string - stroka dlya vyvoda na vyhod)

   xor cx,cx
   xor ax,ax
   mov al, res
   mov dl, 0Ah
     
Delenue:   ; nachalo cikla
   mov ah, 0h   ;ostatok obnulyaem
   div dl   ;delim chislo iz registra "al" na 10
   push ax   ;rezultat deleniya pomeschaem v stek
   inc cx
   cmp al, 0h  ;sravnivaem chastnoe deleniya s 0
   ja Delenue  ;esli bolshe 0, to povtoryaem cikl

   mov bx, offset table; ukazyvaem na tablicy preobrazovaniya
   mov di, offset string; ukazyvaem na stroku dlya preobrazovannogo chisla
   mov ax, ds
   mov es, ax

TablPreobr:   
     
   pop ax   ; shityvaem  v "ax"  iz steka cifry
   mov al, ah
   xlatb    ;zamenyaem znacheniye iz "al" na sootv. znachenie iz tablicy

   stosb   ;zanosim al v stroku vyvoda po adresu di

   loop TablPreobr

   mov byte ptr [di], '$'    ;zanosim v stroku simvol okonchaniya stroki

   mov dx, offset string
   mov ah, 09h
   int 21h

   Ret
show_proc EndP


Сообщение отредактировал kam - Пятница, 03.12.2010, 18:43
 
Неофициальный форум БГУИР » Специальности » Программное обеспечение информационных технологий (ПОИТ) » КПиЯП (Конструирование программ и языки программирования)
Страница 2 из 3«123»
Поиск: