Технологии

Решено

ОПРЕДЕЛЕНИЕ ДАННЫХ В ASSEMBLER - вопрос №267034

Задание :

Используя транслятор MASM разработать программу, которая выполняет
следующие действия:
1. Определяет в памяти строковую переменную под именем my_name с
начальным значением эквивалентным Вашей фамилии латиницей и выводит
значение переменной на экран.
2. Определяет однобайтовые переменные l_byte = N, h_byte = 3 N.
3. Определяет слова l_word = 10 N, h_word = 11 N + 15.
4. Определяет двойное слово v_dword = 30 N + N2.
5. Выводитзначения переменных l_byte, h_byte, l_word, h_word, v_dword
на экран.
В пунктах 2-5 значение N принять равным номеру 6.

___________________________________

.486
.model flat, stdcall; create 32 bit code
; 32 bit memory model
; case sensetive
;always first
;MASM support macros
option casemap :none

include \masm32\include\windows.inc
include \masm32\macros\macros.asm
include \masm32\include\masm32.inc
include \masm32\include\gdi32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\gdi32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.data
my_name DB 'Hello World',0;

.code; Tell MASM where the code starts
; —-------------------------------------------------------------------24
start:; The CODE enter point to the program

print chr$(" *** Laboratory work # 3 *** ",0);

invoke StdOut, offset my_name

exit;
; —-------------------------------------------------------------------
end start; Tell MASM where the program end

 

 

программа не совсем правильно работает

май 6, 2012 г.

  • Всего ответов: 4

  • Андрей FaceOff - аватарка

    Андрей FaceOff

    1-й в Технологиях

    ну она и не может работать, программы нет

    должно быть что то примерно такое

    .486 ; create 32 bit code<br />.model flat, stdcall ; 32 bit memory model<br />option casemap :none ; case sensitive<br />include \masm32\include\windows.inc ; always first<br />include \masm32\macros\macros.asm ; MASM support macros<br />include \masm32\include\masm32.inc<br />include \masm32\include\gdi32.inc<br />include \masm32\include\user32.inc<br />include \masm32\include\kernel32.inc<br />includelib \masm32\lib\masm32.lib<br />includelib \masm32\lib\gdi32.lib<br />includelib \masm32\lib\user32.lib<br />includelib \masm32\lib\kernel32.lib<br />.data
    my_name db 'Familya', '$'
    N equ 123
    N2 equ 456
    l_byte db N, 
    h_byte db 3*N.<br />l_word dw 10*N
    h_word dw 11*N+15.<br />v_dword dd 30*N+N2.
    .code ; Tell MASM where the code starts
    ; ---------------------------------------------------------------------
    start: ; The CODE entry point to the programprint my_name
    print l_byte
    print h_byte
    print l_word
    print h_word
    print v_dword
    exit
    ; ---------------------------------------------------------------------
    end start ; Tell MASM where the program end

    май 6, 2012 г.
  • Андрей FaceOff - аватарка

    Андрей FaceOff

    1-й в Технологиях

    код подправил, это редактор сайта не правильно реагирует на програмный текст, пытается умничать, но не умеет

    май 7, 2012 г.
    Ответ понравился автору
    Лучший ответ по мнению автора
  • Андрей FaceOff - аватарка

    Андрей FaceOff

    1-й в Технологиях

    пропущена строка, см исправление
     
    start: ; The CODE entry point to the programprint my_name
    print my_name
    print l_byte

    май 7, 2012 г.
  • Андрей FaceOff - аватарка

    Андрей FaceOff

    1-й в Технологиях

    <strong>.<br </strong>- это обрывки html тегов, как раз тот глюк редактора сайта
    если вопросы актуальны - можем продолжать в том же режиме по одному
    я поставил masm, будем проверять компиляцией и выполнением

    май 7, 2012 г.

Похожие вопросы

Решено

Ассамблер

май 13, 2012 г.

Технологии

Решено

Ассамблер

май 7, 2012 г.

Технологии

Решено

Ассамблер

май 6, 2012 г.

Технологии