На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Помогите понять , что вообще тут надо сделать.
    Здравствуйте)
    дан текст программы который выводит на экран некоторую фигуру.Помогите пожалуйста мне дописать код в ассемблере чтобы выводил в динамике через LPT-порт
    ExpandedWrap disabled
      ;ПРИМЕР EXE-ПРОГРАММЫ
      ;Определение сегмента стека /можно оставлять без изменения/
      ;Имя сегмента стека - stacksg
      ssg segment para stack 'stack'  ;Стандартный заголовок определения стека
      dw 32 dup(?)                        ;Задание глубины стека
      ssg ends                                ;Конец сегмента стека
       
      ;Определение сегмента данных
      ;Имя сегмента данных - datasg
      datasg segment para 'data'          ;Стандартный заголовок определения данных
      ;Здесь определяются данные
      namepar label byte                         ;Имя списка параметров:
      maxnlen db 30                              ;максимальная длина имени
      namelen db ?                               ;число введенных символов
      namefld db 30 dup(' '),'$'       ;имя и ограничитель для вывода на экран  
      strg db 'I am here, in the Shadow',13,10,'$'
      namprmp db 'TEST'
      string1 DB 'Den nedeli','$'
       
      tes db ?
      cc db ?
      day db ?
      day1 db ?
      day2 db ?
       
       
      k db ?
      a db ?
      b db ?
      c db ?
      x db ?
      y db ?
      ends                                ;Конец сегмента данных
          
      ;Сегмент кода - тело программы                        
      codesg segment para 'code'          ;Заголовок сегмента кода
      begin proc far                      ;Начало программы - основной процедуры
      ;-------------------------------------------------------------------------
      assume cs:codesg,ds:datasg,ss:ssg ; \
      push ds                               ;   \
      sub ax,ax                             ; Стандартный заголовок любой
      push ax                               ;        EXE - программы
      mov ax,datasg                         ;   /
      mov ds,ax                             ; /
      ;-------------------------------------------------------------------------
      ;Непосредственно ваша программа
       
      START:
      mov ax,0003h; стандартный 16-цветовой режим
      int 10h ;передача управления в BIOS
       
       
      mov x,15
      mov y,0
      sub y,01
       
      mov cx,0010
      zero:
      sub x,01
      add y,01
       
      mov ah,02
      mov dh,x
      mov dl,y
      int 10h
       
      mov ah,02
      mov dl,2Ah
      int 21h
       
      loop zero
       
      CIKL:
       
      mov al,y
      cmp al,4Ch
      JNE m1
      JMP START
      m1:
       
      mov cx,0005
      zero1:
      add y,10
       
      mov ah,02
      mov dh,x
      mov dl,y
      int 10h
       
      mov ah,02
      mov dl,2Ah
      int 21h
       
      loop zero1
       
       
      mov cx,0012
      zero2:
      add x,01
       
      mov ah,02
      mov dh,x
      mov dl,y
      int 10h
       
      mov ah,02
      mov dl,2Ah
      int 21h
       
      loop zero2
       
      mov cx,0009
       
      zero4:
       
      sub x,01
      add y,01
       
      mov ah,02
      mov dh,x
      mov dl,y
      int 10h
       
      mov ah,02
      mov dl,2Ah
      int 21h
       
      loop zero4
       
      MOV AH,02   ; получить код следующей нажатой клавиши
      MOV DL,AL   ; переместить считанный символ из AL в DL
      INT 21H     ; вывести его на экран.
       
      MOV  AH,00     ;    Функция ввода
      INT  16H       ;        Вызвать BIOS
      CMP  AL,0Dh    ;    Enter
      JE   EXIT     ;         да - выйти
       
      JMP CIKL
      EXIT:  
      mov ah,1
      int 21h
      ;---------------------------------------------------------------------------
      ret
      begin endp      ;Стандартный конец программы
      codesg ends     ;
      end begin       ;
    Сообщение отредактировано: Qraizer -
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0176 ]   [ 16 queries used ]   [ Generated: 24.04.24, 20:34 GMT ]