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

Тема в разделе "WASM.BEGINNERS", создана пользователем IceStudent, 11 ноя 2006.

  1. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Ложное срабатывание
     
  2. DPS

    DPS New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2006
    Сообщения:
    2
    Люди! Очень большая просьба: объясните мне, пожалуйста, как рисовать блок-схемы по ассемблерским прогам? А то этот педик мне по технологиям программирования поставит незачет.
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    DPS
    Нарисовать блок-схему на базе уже существующего ассемблерного кода (реверсинг) или перед написанием своего собственного кода? В первом случае основным моментом является идентификация ветвлений и циклов, о чём подробно описано в статьях Криса Касперски.
     
  4. Demm

    Demm New Member

    Публикаций:
    0
    Регистрация:
    9 дек 2006
    Сообщения:
    7
    Помогите пожалуйста и мне, нужна помощь по ассемблеру.
    Надо написать прогу, которая загружает три числа в озу мк по адресам adr1,adr2,adr3. Затем перемещает их по адресам adr4,adr5,adr6.
    Все адреса adr1,adr2,adr3,adr4,adr5,adr6 произвольны и не связанны между собой. В кач-ве значения числа для команды ldx<n>,x использовать любое число.
    Очень прошу помочь, помощь нужна реально.
    это все для процессора HC08
     
  5. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Demm
    http://www.hc08.net/

    Беглого взгляда по примерам должно хватить, чтобы наваять такую простую программу самостоятельно. Ты же сам уже привёл инструкцию, которая, собственно, реализует запись произвольного значения по заданному адресу.
     
  6. Demm

    Demm New Member

    Публикаций:
    0
    Регистрация:
    9 дек 2006
    Сообщения:
    7
    Вот есть команда MOV т е я могу сделать так
    mov #0Ah, adr1
    mov #6Ah, adr2
    mov #84h, adr3
    mov adr4,adr1
    mov adr5, adr2
    mov adr6, adr3
    И причем тут тогда LDX? Или так нельзя сделать?
     
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Demm
    А ты уверен, что mov поддерживает форму mov imm8,m16? Посмотри внимательнее.

    Это вообще фантастика :)

    При том, что LD и MOV - это 2 большие разницы.
     
  8. Demm

    Demm New Member

    Публикаций:
    0
    Регистрация:
    9 дек 2006
    Сообщения:
    7
    ну так mov выполняет пересылку из одной ячеки памяти в другую, почему тогда mov adr4,adr1
    фантастика?
    mov поддерживает запись константы в ячейку памяти, если размер одинаков.
    Я могу ошибаться, не пинайте:)
    Вот я не очень догоняю как здесь использовать индексный регистр.
     
  9. Demm

    Demm New Member

    Публикаций:
    0
    Регистрация:
    9 дек 2006
    Сообщения:
    7
    Мне все-таки очень нужна помощь, хоть прога и легкая, но помогите все же, пожалуйста!
     
  10. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Demm
    Действительно, есть такой mov в MCU HC08. Кстати, LD вообще читает из памяти, а не пишет. Поэтому можно использовать только MOV и/или ST.

    Т.к. все адреса произвольны и не связаны между собой, то нет никакого смысла использовать H:X.
     
  11. Demm

    Demm New Member

    Публикаций:
    0
    Регистрация:
    9 дек 2006
    Сообщения:
    7
    меня все же смущает, то что в условии сказанно про ldx, значит они хотят что бы я его использовал.
    так как будет выглядеть конечная прога?
     
  12. Batman

    Batman New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    6
    народ! я тут накатал прогу, про которую писал, вот тока неправильно че-то)
    подскажите кто-нить че поправить надо...
    где "+" стоят - на те строки компилятор ругался, хотя, че-то еще менял, после этого не компилил
    Код (Text):
    1. ; Programm Inverse_Registry
    2. .model small
    3. .code
    4. org 100h
    5.  
    6. message1 db       "Вводимая строка: $"
    7. ;message2 db       "Преобразованная строка: $"
    8. ;crlf     db       0Dh,0Ah,'$'
    9. buffer   db       20             ; максимальный размер буфера ввода
    10. blength  db       ?             ; размер буфера после считывания
    11. NAMEFLD     DB        20 DUP (' ')   ; Введенные символы
    12.  
    13. start:
    14.         LEA       dx,message1
    15.         mov       ah,9
    16.         int       21h           ; вывести приглашение ко вводу message1
    17.         LEA       dx,buffer
    18.         mov       ah,0Ah
    19.         int       21h           ; считать строку символов в буфер
    20.         lea   BX,namefld
    21.     LEA   CX,BLENGTH
    22.  
    23. PEREVOD:
    24.  
    25.     MOV     AH,[BX]      ;Символ из NAMEFLD +
    26.     CMP     AH,5AH       ;СТРОЧНАЯ
    27.     JL      PREOBR_ZAG    
    28.     CMP AH,61H       ;ПРОПИСНАЯ
    29.     JG  PREOBR_STR
    30.     CALL    VIVOD
    31.    
    32. RET
    33.  
    34. PREOBR_ZAG:
    35.    
    36.     AND     AH,11111111B ;Да - преобразовать
    37.     MOV     [BX],AH      ;ЗАПИСАТЬ В NAMEFLD+
    38.     INC BX
    39.     LOOP    PEREVOD
    40. RET
    41.  
    42. PREOBR_STR:
    43.  
    44.     AND     AH,11011111B ;Да - преобразовать
    45.     MOV     [BX],AH      ;Записать в NAMEFLD+
    46.     INC BX
    47.     LOOP    PEREVOD
    48. RET
    49.  
    50. VIVOD:
    51.     MOV AH,9
    52.     INT 21H
    53. RET
    54.  
    55.  
    56.  
    57. end start
    ппц... во вторник сдать надо, иначе хвост буит, а там, мож, и отчисление, а во втором инсте тож скоро сессия( отзовитесь хоть кто-нить - прога-то не оч сложная)
     
  13. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    попробуй использовать si или di вместо bx
     
  14. Batman

    Batman New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    6
    Пробовал, ошибка с типом переменной...
     
  15. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Batman
    попробуй написать что-нибудь вроде
    Код (Text):
    1. byte ptr [bx]
    а то компилятор вполне обоснованно ругаеццо
     
  16. Batman

    Batman New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    6
    это мне вместо [BX] подставлять?
     
  17. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Batman
    MOV AH, byte prt [BX]

    Явно надо указывать, что ты хочешь поместить из памяти не слово, а байт.
     
  18. sharl

    sharl Eugene

    Публикаций:
    0
    Регистрация:
    2 дек 2006
    Сообщения:
    7
    Адрес:
    Астрал
    почему не работает код? считывается символ (нижний регистр) выводит заглавную

    .model small
    .stack 100h
    .code
    start:

    mov ah,06h
    int 21h

    sub dl,20h

    mov ah,02h
    int 21h

    end start
     
  19. Batman

    Batman New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    6
    Пишет, что найдены Extra characters on line))))
    Блин, это чудо в конце концов заработает?)
    Седня уже на пересдачу отправили - задание не сделано....
     
  20. sharl

    sharl Eugene

    Публикаций:
    0
    Регистрация:
    2 дек 2006
    Сообщения:
    7
    Адрес:
    Астрал
    надо не
    MOV AH, byte prt [BX]

    а

    MOV AH, byte ptr [BX]