3 / 3 / 3
Регистрация: 10.03.2017
Сообщений: 15
1

Программа на assembler которая должна выводить все данные из .data

10.03.2017, 21:28. Показов 1189. Ответов 4

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые форумчане! в assemblere я полный нуль. Дано мне такое задание:
Написать программу на MASM, которая выводит через макросы все данные из .data, и выходит при помощи макроса из программы, выход то вроде я написал, а вот данные из дата не могу правильно вывести, помогите пожалуйста если кто силен.
я вроде написал, но оно у меня не работает.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
.386
.model flat, stdcall
option casemap :none
 
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
 
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
 
datasegment macro
mov ax,@data
mov ds,ax
endm
 
print_stroke macro stroke
push ax
mov ah,09h
mov dx,offset stroke
int 21h
pop ax
endm
 
exit_programm macro
mov ah,04ch
int 21h
endm
 
.data
message db "Hello World!", 0
message2 db "Hello World! Message 2", 0
message3 db "Hello World! Message 3", 0
 
.code
    start:
        invoke StdOut, addr message
        datasegment
        print_stroke message
        invoke ExitProcess, 0
        exit_programm
    end start
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2017, 21:28
Ответы с готовыми решениями:

Программа, которая должна выводить случайное число
Написал программку, которая должна выводить случайное число. Но сколько раз я не запускал...

Программа, которая должна выводить объем продаж, и заработок
Разработать программу, которая должна вводить для каждого продавца объем его продаж за последнюю...

Программа должна брать данные с 1 листа и выводить полученное на второй
Помогите пожалуста,непойму что надо дописать Программа должна брать данные с 1 листа и выводить...

Есть программа, которая должна выводить график max и min функции, но она почему то не работает
Program Graphik; uses Graph; Type T=array of real; gt=string; var Gd,Gm: integer; z1,z2,z3:...

4
Модератор
Эксперт по электронике
8340 / 4234 / 1605
Регистрация: 01.02.2015
Сообщений: 13,186
Записей в блоге: 5
10.03.2017, 21:49 2
У вас программа - смесь кода для двух операционок Windows и DOS.
Для какой из них требуется получить результат? Какой у вас masm - masm32?
0
3 / 3 / 3
Регистрация: 10.03.2017
Сообщений: 15
10.03.2017, 21:59  [ТС] 3
MASM32, мне под Windows нужно, благодарю что заинтересовались
0
Модератор
Эксперт по электронике
8340 / 4234 / 1605
Регистрация: 01.02.2015
Сообщений: 13,186
Записей в блоге: 5
10.03.2017, 23:40 4
Лучший ответ Сообщение было отмечено romka1234123 как решение

Решение

Взял какой-то пример из masm32 и переделал.
Здесь вывод трёх строк и ожидание Enter.
Почему-то думаю, что это не всё задание.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
; #########################################################################
 
      .386
      .model flat, stdcall
      option casemap :none   ; case sensitive
 
; #########################################################################
 
    ; ------------------------------
    ; Build this app in console mode.
    ; ------------------------------
 
      include d:\masm32\include\windows.inc
 
      include d:\masm32\include\user32.inc
      include d:\masm32\include\kernel32.inc
      include d:\masm32\include\masm32.inc
 
      includelib d:\masm32\lib\user32.lib
      includelib d:\masm32\lib\kernel32.lib
      includelib d:\masm32\lib\masm32.lib
 
; #########################################################################
 
    .data
        Message     db "Hello World!", 13, 10, 0
        Message2    db "Hello World! Message 2", 13, 10, 0
        Message3    db "Hello World! Message 3", 13, 10, 0    
        Buffer      db 128 dup(?)
 
; #########################################################################
 
    .code
 
PrintString macro   String
    invoke StdOut, ADDR String
endm
 
exit_programm macro
    invoke ExitProcess, 0
endm
 
  Main   PROTO
 
    start:
      invoke Main
      exit_programm
 
; #########################################################################
 
Main proc
  ; -------------------------------
  ; console mode library procedures
  ; -------------------------------
 
    invoke ClearScreen
 
    PrintString Message
    PrintString Message2
    PrintString Message3
    invoke StdIn,ADDR Buffer,LENGTHOF Buffer
 
    ret
 
Main endp
 
; #########################################################################
 
   end start
1
3 / 3 / 3
Регистрация: 10.03.2017
Сообщений: 15
11.03.2017, 06:51  [ТС] 5
Спасибо большое, дальше я думаю доработаю
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2017, 06:51
Помогаю со студенческими работами здесь

Программа должна выводить все числа кратные трём, в промежутке от указанного минимума до указанного максимума
Всем доброе время суток! Задали задание, банальное, но есть одна проблема. Помогите найти решение...

Напишите программу, которая находит все решения заданного вам уравнения на интервале [-5;5]. Программа должна выполнить
Напишите программу, которая находит все решения заданного вам уравнения на интервале . Программа...

Написать функцию, которая должна выводить число в текстовом варианте
Написать функцию, какая принимает число от 1 до 99. Функция должна выводить число в текстовом...

Программа должна выводить из массива простые числа
Неактуально

Исправить ошибки в программе, которая должна выводить символы без пробелов
Программа должна выводить символы без пробелов. Почему пропускает первый символ, а остальные...

помогите найти ошибку. программа должна выводить матрицу
procedure TForm12.Button1Click(Sender: TObject); var a:arrayof integer; b:integer; begin repeat...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru