Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2009, 17:33   #1
ThePowerOfTheMind
Новичок
Джуниор
 
Аватар для ThePowerOfTheMind
 
Регистрация: 26.05.2009
Сообщений: 2
По умолчанию Как пишется программа на Ассемблере?

Здравствуйте. Недавно начал изучать ассемблер.

У меня к вам просьба - напишите программу (любую), используя данный шаблон. Желательно - на FASM. И напишите, что она делает. Спасибо.


Код:
TITLE proga1
DATA SEGMENT
;.............
DATA ENDS

STCK SEGMENT STACK
;...............
db 256 DUP(?)
STCK ENDS

CODE SEGMENT PARA PUBLIC 'code'
assume cs:code, ds:data, ss:stk

;................

main proc

mov AX,DATA
mov DS,AX

;..................

mov ax, 4C00h
int 21h

main endp
code ends
end main
ThePowerOfTheMind вне форума Ответить с цитированием
Старый 26.05.2009, 18:48   #2
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Код:
TITLE progam1 ;
DATA SEGMENT
message db "Hello world from DOS Fasm$"
DATA ENDS

STCK SEGMENT STACK
;...............
db 256 DUP(?)
STCK ENDS

CODE SEGMENT PARA PUBLIC 'code'
assume cs:code, ds:data, ss:stсk

main proc
mov AX,DATA
mov DS,AX

mov dx,message
mov ah,9
int 21h 
mov ax, 4C00h
int 21h

main endp
code ends
end main
Функция 9 прерывания 21 выводит на экран строку по адресу взятому из DX.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 26.05.2009, 19:37   #3
ThePowerOfTheMind
Новичок
Джуниор
 
Аватар для ThePowerOfTheMind
 
Регистрация: 26.05.2009
Сообщений: 2
По умолчанию

Спасибо, Ivan. Жду еще нескольких ответов чтобы написать что-то поистине революционное.
ThePowerOfTheMind вне форума Ответить с цитированием
Старый 26.05.2009, 19:45   #4
FreedomFighter
Новичок
Джуниор
 
Регистрация: 26.05.2009
Сообщений: 2
По умолчанию

Код:
.286
     TITLE    EXMOVE (EXE)   ђ*биЁаҐ***п ЇҐаҐбл«Є*
     ;-------------------------------------------------------
     STACKSG  SEGMENT  PARA  STACK  'Stack'
              DW       32  DUP(?)
     STACKSG  ENDS
     ;-------------------------------------------------------
     DATASG   SEGMENT  PARA  'Data'
     NAME1    DB       'ABCDEFGHI'
     NAME2    DB       'JKLMNOPQR'
     NAME3    DB       'STUVWXYZ*'
     DATASG   ENDS
     ;--------------------------------------------------------
     CODESG   SEGMENT  PARA  'Code'
     BEGIN    PROC     FAR
              ASSUME   CS:CODESG,DS:DATASG,SS:STACKSG,ES:DATASG
              PUSH     DS            ;‡*ЇЁб*вм DS ў б⥪
              SUB      AX,AX         ;‡*ЇЁб*вм ў б⥪
              PUSH     AX            ;*г«Ґў®© *¤аҐб
              MOV      AX,DATASG     ;Џ®¬ҐбвЁвм *¤аҐб DATASG
              MOV      DS,AX         ;ў ॣЁбва DS
              MOV      ES,AX
              CALL     B1OMOVE       ;‚л§ў*вм Ї/Ї
              CALL     C1OMOVE       ;‚л§ў*вм Ї/Ї
              RET                    ;‚Ґа*гвмбп ў DOS
     BEGIN    ENDP

     ;        ђ*биЁаҐ***п ЇҐаҐбл«Є*,
     ;        ЁбЇ®«м§гой*п ЇҐаҐе®¤ Ї® гб«®ўЁо:
     ;------------------------------------------------------------
     B1OMOVE  PROC
              LEA      SI,NAME1       ;€*ЁжЁ*«Ё§*жЁп *¤аҐб®ў
              LEA      DI,NAME2       ;NAME1 Ё NAME2
              MOV      CX,09          ;ЏҐаҐб«*вм 9 бЁ¬ў®«®ў
     B20:     MOV      AL,[SI]        ;ЏҐаҐб«*вм Ё§ NAME1
              MOV      [DI],AL        ;ЏҐаҐб«*вм ў NAME2
              INC      SI             ;‘«Ґ¤гой.бЁ¬ў.ў NAME1
              INC      DI             ;‘«Ґ¤гой.Ї®§. ў NAME2
              DEC      CX             ;“¬Ґ*миЁвм бз. жЁЄ«*
              JNZ      B20            ;‘зҐвзЁЄ > 0? „*-жЁЄ«
              RET                     ;…б«Ё бзҐвзЁЄ = 0, в® ўҐа*гвмбп
     B1OMOVE  ENDP

     ;        ђ*биЁаҐ***п ЇҐаҐбл«Є*,
     ;        ЁбЇ®«м§гой*п Є®¬**¤г LOOP
     ;----------------------------------------------------------------
     C1OMOVE  PROC
              LEA      SI,NAME2        ;€*ЁжЁ*«Ё§*жЁп *¤аҐб®ў
              LEA      DI,NAME3        ;NAME2 Ё NAME3
              MOV      CX,09           ;ЏҐаҐб«*вм 9 бЁ¬ў®«®ў
     C20:     MOV      AL,[SI]         ;ЏҐаҐб«*вм Ё§ NAME2
              MOV      [DI],AL         ;ЏҐаҐб«*вм ў NAME3
              INC      SI              ;‘«Ґ¤гой.бЁ¬ў.ў NAME2
              INC      DI              ;‘«Ґ¤гой.Ї®§. ў NAME3
              LOOP     C20             ;“¬Ґ*миЁвм бзҐвзЁЄ,
                                       ;Ґб«Ё *Ґ 0, в® жЁЄ«
              RET                      ;…б«Ё бзҐвзЁЄ = 0, в® ўҐа*гвмбп
     C1OMOVE  ENDP
     CODESG   ENDS
              END      BEGIN
Эта прога выдает лат. алфавит и *. помогите сделать так чтобы четные буквы обнулились, короче: было ABCDEFGHIJKLMNOPQRSTUVWXYZ* должно быть A.C.E.G.I.K.M.O.Q.S.U.W.Y.*

Помогите плиз....

иероглифы - это коменты, глюк кодировки, не суть важно...

Последний раз редактировалось rpy3uH; 28.05.2009 в 16:53.
FreedomFighter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на ассемблере или ассемблерные вставки. Gremlin Фриланс 6 26.01.2009 21:27
Наилучшая программа для программирования в ассемблере Миша Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 11.01.2009 13:25
как компилировать программы написанные на ассемблере??? wwworm Помощь студентам 3 04.03.2008 07:38