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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2009, 20:44   #21
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Тему мы с тобой зафлудили конкректно!!!
Обрати внимание на
U dw 32
...
А нужно
U db 32

Код:
.model small
.stack 100h
.data
 
U db 32h
T db 09h
x db 64h
w db 6h

.code
start:
   xor ax,ax
   xor bx,bx
   mov al,[x]
   mov bl,2
   mul bl
   push ax
   mov bl,[T]
   mov al,3
   mul bl
   xchg ax,bx
   pop ax
   add ax,bx
   sub ax,1
   mov bl,2
   mul bl
   mov bl,[u]
   sub ax,bx
   mov bl,[w]
   sub ax,bx
   mov ax,4c00h
   int 21h 
end start
Цитата:
зачем на стек тут указывать?
Потому что это exe программа, а не com!!!
xor eax, eax
xchg [eax], eax

Последний раз редактировалось MalCer; 13.06.2009 в 20:52.
MalCer вне форума Ответить с цитированием
Старый 13.06.2009, 20:50   #22
stripe
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 25
По умолчанию

cпасибо тебе огромное О добрый человек)))
я кста писал не только на етом форуме но только тут помогли))
просто нам дали пример и там было написано dw и без стека вот и тупил)))
stripe вне форума Ответить с цитированием
Старый 13.06.2009, 20:54   #23
DEADHUNT
Пользователь
 
Регистрация: 23.10.2008
Сообщений: 48
По умолчанию

правильно org 0x100 - установка начального адреса. так как DOS грузит программу по адресу XXXX:0100. и вобще-то там каки-то переменные его есть(по адресам XXXX:0000-XXXX:0100)
DEADHUNT вне форума Ответить с цитированием
Старый 13.06.2009, 20:55   #24
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

На cyberforum'е тоже верное решение твоей задачи, просто каждый решает по своему
DEADHUNT, ты думаешь он это знает?! .Он же только начинает учиться!
И еще: если хочешь dw, то используй ax,bx , а не al, bl и т.д.
xor eax, eax
xchg [eax], eax

Последний раз редактировалось MalCer; 13.06.2009 в 20:59.
MalCer вне форума Ответить с цитированием
Старый 13.06.2009, 21:04   #25
stripe
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 25
По умолчанию

все терь до конца всё понял, ешё раз спс)
поетому я и незнал что такое al и bl так как всегда использовал dw)
stripe вне форума Ответить с цитированием
Старый 14.06.2009, 14:11   #26
Kristia Mieru
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 2
По умолчанию

Во вторник экзамен, даже знаю билет, нужно написать прогу вот по этому условию (мне только код нужен) - . Напишите программу на языке ассемблер МП I8080, которая осуществит сравнение двух чисел, хранящихся в ячейках 0800h и 0801h, и если они равны, то их сумма будет записана в памяти по адресу 0900h.
и вторая : Написать программу на языке ассемблер I8080: Даны две ячейки памяти с адресами 0800h и 0801h. Если их значения не равны, то присвоить каждой сумму этих значений, а если равны, то присвоить переменным нулевые значения


Помогите кто нить, пжалстааааа))) зарание очень благодарна))) :-*
Kristia Mieru вне форума Ответить с цитированием
Старый 14.06.2009, 15:42   #27
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Вообще-то, если вы хотите чтобы вам ответили, то лучше создать новую тему!!!
Цитата:
МП I8080
Сами переделайте!
Я не совсем уверен в правильности решения вашей задачи, но вот как я думаю:
1) для начала лучше очистим регистры, которые будем использовать(не обязательно):
xor eax,eax
xor ebx,ebx
xor ecx,ecx
2) Теперь присвоим регистрам числовые значения 800h и 801h
mov ebx,800h
mov ecx,801h
3) Дальше мы сравниваем регистры. Предположим, что они равны:
cmp ecx,ebx
jz next
4) Если они равны, то сложим их:
add ecx,ebx
5) Теперь занесем в регистр eax число 900h
mov eax,900h
6) И запишем по адресу eax нашу полученную сумму:
mov [eax],ecx

Вот код:
1)
Код:
.386
.model flat, stdcall
option casemap:none
.data 

.code
start:
    xor ax,ax
    xor ebx,ebx  
    xor ecx,ecx
    mov ebx,800h
    mov ecx,801h
    cmp ecx,ebx
    jz next
next: 
     add ecx,ebx
     mov eax,900h
    mov [eax],ecx
    ret 
end start
Я мог где то ошибиться, т.к. не смотрел под отладчиком. Если не правильно, то ребята тут меня подправят!
Вторая задача делается по аналогии
З.Ы.: Я использовал 32-х битные регистры, но вы можете использовать и 16-битные
xor eax, eax
xchg [eax], eax

Последний раз редактировалось MalCer; 14.06.2009 в 19:10.
MalCer вне форума Ответить с цитированием
Старый 14.06.2009, 15:53   #28
Тан
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 1
Печаль Помогите пожалуйста

Пишу курсовую, нужно написать блок-схему. Как открыть блок-схему ? Как ее активировать?
Тан вне форума Ответить с цитированием
Старый 14.06.2009, 15:55   #29
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Цитата:
Как открыть блок-схему ? Как ее активировать?
Я ничего не понял! Вы могли бы поподробнее?
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 14.06.2009, 16:02   #30
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

to MalCer, вообще-то в I8080 расширеными регистрами и не пахло, как я помню
Я правда сам не знаю чем компилируют програмы для этого зверя поэтому оставлю для масма и для 8086
Код:
.model tiny
.code
start:
    mov bl,[800h]
    mov cl,[801h]
    cmp cl,bl
    jz next
    ret
next: 
     add cl,bl
    mov [900h],cl
    ret 
end start
2.
Код:
.model tiny
.code
start:
    mov bl,[800h]
    mov cl,[801h]
    cmp cl,bl
    jnz next
    mov [800h],0
    mov [801h],0
    ret
next: 
    add cl,bl
    mov [800h],cl
    mov [801h],cl
    ret 
end start
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 14.06.2009 в 16:47.
Goodwin98 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две задачи на ассемблере, вычисление выражений _°PROTOS°_ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 29.05.2009 22:51
Вычисление арифметических выражений.(delphi) КуДрЯ Помощь студентам 3 02.04.2009 02:54
Запись условия в виде логических выражений dancergirl Помощь студентам 3 26.03.2009 04:04
вычисление выражений (pascal) вкусняшка Помощь студентам 4 14.03.2009 16:42
Написание математических формул Slavik HTML и CSS 8 17.02.2009 20:41