Воскресенье, 19.05.2024, 06:54
Приветствую Вас Гость | RSS
Главная | | Регистрация | Вход
Меню сайта
Форма входа
Поиск
Календарь
«  Февраль 2012  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
272829
Архив записей
Наш опрос
Оцените мой сайт
Всего ответов: 20
Мини-чат
Друзья сайта
  • Заказ Художник
  • Рыбалка
  • Новости
  • Наш университет io-96
  • Железо и другие
  • Наш Counter-Strike
  • Google ot Turbokherson
  • Google ot Turbokherson87
  • Android
  • Программы и Софт
  • Программирование
  • Лечение здоровья
  • О Ремонт компьютер
  • Наш сайт Turbokherson
  • Программирование ICQ 378204653 от Turbokherson
    Главная » 2012 » Февраль » 11 » assembler hello world
    20:14
    assembler hello world
    MASM32+WinAPI - самое оно

    Code
    _______________________________________________________________
    .386  
    .model flat, stdcall  
    ExitProcess PROTO      ,:DWORD  
    MessageBoxA PROTO      ,:DWORD, :DWORD, :DWORD, :DWORD  
    .data  
        MsgBoxCaption  db "Пример окна сообщения",0  
        MsgBoxText     db "Программировать на Ассемблере под Win32 очень просто!",0  
    .const  
        NULL        equ  0  
        MB_OK    equ  0  
    .code  
        Main:  
         INVOKE    MessageBoxA, NULL, ADDR MsgBoxText, ADDR MsgBoxCaption, MB_OK  
         INVOKE    ExitProcess, NULL  
        end Main 
    ______________________________________________________________
    Или вот для дос:

    Code
    ______________________________________________________________
    code SEGMENT
      assume cs:code, ds:data
      mov ax,data ;установка
      mov ds,ax   ;регистра ds
      mov dx,offset mes ;вывод
      mov ah,9    ;сообщения  
      int 21h     ;на экран
      mov ah,10h  ;ожидание нажатия  
      int 16h     ;любой клавиши
      mov ax,4c00h ;выход из
      int 21h     ;программы
      code ENDS
    data SEGMENT
    mes db 'Hello привет ', 13,10,'$'
    data ENDS
    end

    _________________________________________________________________

    .model small
    .stack 100h
    .data 
    mesg     db "Hello World! $"
    .code
    main:
            mov ax, @data ; настраивается сегментный регистр
            mov ds, ax
            
            mov ah, 09
            mov dx, offset mesg ; вывод сообщения
            int 21h
            
            mov ah, 01 ; ждет нажатия кнопок
            int 21h
     
            mov ax,4c00h ; выход
            int 21h
     
    end main

    Просмотров: 1850 | Добавил: Turbokherson | Рейтинг: 0.0/0
    Всего комментариев: 3
    3 Turbokherson  
    0
    CSEG segment
    org 100h

    Begin:

    mov ah,9
    mov dx,offset Message
    int 21h

    int 20h

    Message db 'Hello, world!$'

    CSEG ends
    end Begin

    2 Turbokherson  
    0
    Убери .386
    Да и сегмент стека тут на деле не особо нужен

    Мой вариант helloworld, можешь сравнить)):
    dseg segment
    s db 'HELLO WORLD!!!',13,10,'$'
    dseg ends
    cseg segment
    assume cs:cseg, ds:dseg
    ;
    nach: mov ax,dseg
    mov ds,ax
    ;
    mov dx, offset s
    mov ah, 9
    int 21h
    ;
    mov ax, 4c00h
    int 21h
    cseg ends
    end nach

    1 Turbokherson  
    0
    .386

    Data segment
    Message db 'Hello world','$'
    Data ends

    Code segment
    assume cs: Code, ss: StackSeg
    Start:
    mov ax, Data
    mov ds, ax
    mov ds: Data

    mov ah, 9
    mov dx, offset Message
    int 21h

    mov ax, 4c00h
    int 21h
    Code ends

    StackSeg segment para stack 'stack'
    dw 2048 dup (?)
    StackSeg ends

    end Start

    Имя *:
    Email *:
    Код *:
    Создать бесплатный сайт с uCozCopyright MyCorp © 2024