IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> НАИПРОСТЕЙШИЕ ВЕЩИ
сообщение
Сообщение #1


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


:D :D :D :D :D :D
--------
наипростейшие вещи
ДОБРО ПОЖАЛОВАТЬ В МИР ASSEMBLERA

----
ДУМАЮ ЧТО ОДИН ИЗ САМЫХ БЫСТРЫХ (БЫСТРЕЕ НАВЕРНО МАШИННЫЕ КОДЫ)
в которых раньше и писали
---
ЯЗЫКОВ ПРОГРАММИРОВАНИЯ И САМЫХ СТАРЫХ
ЕСЛИ ВЫ ТУТ ЗНАЧИТ ВЫ ХОТИТЕ НЕЧТО БОЛЬШЕГО ЧЕМ ВАМ ДАЮТ ДРУГИЕ
ВЫСОКО УРОВНЕВЫЕ ЯЗЫКИ ЗНАЧИТ ВЫ ХОТИТЕ СТАТЬ ПРОФ

-------------
ЧТО ДАЕТ ASM
-
ОПИТИМИЗАЦИЯ ПРОГРАММЫ
-
УСТОЙЧИВОСТЬ РАБОТЫ
-
МЕНЬШИЙ ОТКОМПИЛ ИСХОДНЫЙ КОД
-
БЫСТРОТА РАБОТЫ

-----
НЕДОСТАТКИ
-
СЛИШКОМ МНОГО ТЕКСТА КОДА
-
СЛОЖНОСТЬ ПРОГРАММИРОВАНИЯ
-
МЕНЬШАЯ НАГЛЯДНОСТЬ КОДА
-
ПРОГРАММИРОВАНИЯ БОЛЬШИХ ПРОГРАММ С НУЛЯ ОДНОМУ ОЧЕНЬ СЛОЖНО
ПРОСТО НЕ ВЫНОСИМО

-
-
-
--------------
ЗАДАВАЙТЕ СВОИ ВОПРОСЫ
-------------

==================
модели памяти и общая структура программы
--------------------------------
.Model Lagre--------всех несколько<=64кило
.Model Tiny---------один сегмент 64кило причем код и данные в одном сегменте для COM файлов
.Model Small--------один DATA и один CODE по 64кило
.Model medium-------несколко CODE один DATA
.Model compact------СODE один DATA несколько
.Model Huge---------всех несколько >64

---
FLAT спец для WINDOWS сплошна модель памяти
ограничены возмажности мат платы и процом

----
Сегмент стека
.STACK
------
Сегмент данных
.DATA
------
Сегмент кода
-----
.CODE
-----
процедуры
имя Proc
имя endp
------
конец проги
end




==================
описание данных
--------------------------------
8    бит    DB     BYTE        255
16  бит    DW      WORD        65535

32  бит    DD      DWORD      
64  бит    DQ      QWORD      
80  бит    DT      TBYTE      
(10 byte)
---------
описание переменных
n  db 0
w  db 1,1,4,45,2
st db 'HELLO'

----------

==================

регстры общего назначения
находятся именно в процессоре компа
так что Вы работаете напрямую с процессором
AX = AH + AL для счета, операций ввода вывода обязат для умножения
CX = CH + CL для счетчик для циклов, арифм команд
DX = DH + DL для регстра данных
BX = BL + BH для индексной адресации
-------------
сегментные регистры
CS сегмент кода код проги начальный адрес сегмента кода+рег IP получается адресс выполнемой команды
так в принципе и проц работает

DS содер начальный адресс сеегмета данных
SS начальный адрес сегмента стека
ES регистр сегмента расширения (дополнительный)
------
IP регист указателя команд
содержит смещения на команду, которая должна быть выполнена
тобишь
CS:[IP]-- содержит полный адресс -=следующей=- выполняемой команды


============================================
=============ФЛАГИ==========================
============================================
cf-если прозошол пернос занчения из младшего регистра Al в старший AH
то CF взводится в 1 примен в арифметич командах

pf-флаг четности для ввода вывода
af-для BCD чисел
zf-флаг нуля взводится в 1 если результат выполнения команды равен 0

sf-флаг знака
of-переполнение
tf-трассировка для отладчиков
if-флаг прерываний 1-разрешены 0-запрещены
df-флаг направления


=========================================
команды пересылки
mov ax,dx
mov al,dl
mov al,dh
----
f db 10
.........
mov ax,f
или
mov f,ax
-----
mov ax,15(bx,dx,cx,)
----

========================================
настройка сегмента данных
mov ax,@data
mov ds,ax
или

----
@data(для модели памяти .SMALL)
т.к. нельзя пересылать на прямую (ds,@data)
=======================================


К СТАТИ КОМПЬЮТЕР НЕЗНАЕТ ОТРИЦАТЕЛЬНЫХ ЧИСЕЛ

ЗНАЮТ ТОЛЬКО КОМПИЛЯТОРЫ

ASM --- НЕЗНАЕТ ОТРИЦ ЧИСЕЛ???

ОБОЗНАЧЕНИЕ ОТРИЦ ЧИСЕЛ ОТВОДИТСЯ ПРОГРАММИСТУ
В asm СУЩЕСТВУЕТ ТОЛЬКО КАК БЫ УКАЗАТЕЛЬ НА ОТРИЦ ЧИСЛО ЕТО ПОСЛЕДНИЙ
БИТ(СТАРШИЙ)
----
для отриц чисел существует дополнительна кодировка

----
ЕСЛИ ОН 1 ТО ЧИСЛО МОЖНО СЧИТАТЬ ОТРИЦ ЕСЛИ 0 ТО НЕ ОТРИЦ
---
НАПРИМЕР -1 ЕТО В БИН КОДЕ 11111111b binary или 255 положит
---
если взять 11111111b инвертировать получим 00000000b и прибавим единицу +1
получим 1 тобишь -1 просто в памяти компа -1 ето 11111111b
все зависит от вас как использовать ето число как -1 или 255

-----


-------------------------



============================
ничего не делающая программа
============================
.model small            ;модель памяти
.stack 100h            ;стек инициализ под хранение всячины
.data                  ;сегмент данных
.code                  ;сегмент кода
start:                  ;метка
     mov ax,04ch      ;в регист ax функция 0-выхода    4ch
     int 21h            ;перывания DOS
end start            ;
ends                  ;
===========================
ето программа просто выходит
===========================












;D


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


:D
-=-=-
имею ввиду обработку и представление отрицательных чисел и чисел с плавающей запятой
-=-=-


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.12.2019 14:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name