Ассемблер, как он есть

  1. 8 г. назад
    24.10.2014 20:44:17 отредактировано syktyk

    Давным-давно, когда трава была зеленее, а небо - голубее ультрамаринистей, когда не было этих ваших инторнетов,
    мне приходилось работать с инофирмачами, на разных стартапах АСУТП. И, вот, тогда, кто-то из них привез этакую хохмочку, на тему сабжа, которая запала мне в голову.
    Когда я скачал инторнет к себе, на 8" дискету, то обнаружил на ее просторах то, над чем я улыбался в начале 80-х.
    Все это легко луркается по одной из ключевых фраз-мнемоник асма.

    ЗЫ. АСМ - есмь царь! :)

    Assembler as it REALLY is


    AAC Alter All Commands
    AAR Alter at Random
    AB Add Backwards
    AFVC Add Finagle's Variable Constant
    AIB Attack Innocent Bystander
    AWTT Assemble with Tinker Toys
    BAC Branch to Alpha Centauri
    BAF Blow all Fuses
    BAFL Branch and Flush
    BBIL Branch on Burned-Out Indicator Light
    BBT Branch on Binary Tree
    BBW Branch Both Ways
    BCIL Branch Creating Infinite Loop
    BDC Break Down and Cry
    BDT Burn Data Tree
    BEW Branch Either Way
    BF Belch Fire
    BH Branch and Hang
    BMR Branch Multiple Registers
    BOB Branch on Bug
    BOD Beat on the Disk
    BOI Byte Operator Immediately
    BPDI Be Polite, Don't Interrupt
    BPO Branch on Power Off
    BRSS Branch on Sunspot
    BST Backspace and Stretch Tape
    BW Branch on Whim
    CBNC Close, but no Cigar
    CDC Close Disk Cover
    CDIOOAZ Calm Down, It's Only Ones and Zeroes
    CEMU Close Eyes and Monkey With User Space
    CH Create Havoc
    CLBR Clobber Register
    CLBRI Clobber Register Immediately
    CM Circulate Memory
    CMD Compare Meaningless Data
    CML Compute Meaning of Life
    CNB Cause Nervous Breakdown
    COLB Crash for Operator's Lunch Break
    CPPR Crumple Printer Paper and Rip
    CRASH Continue Running After Stop or Halt
    CRB Crash and Burn
    CRN Convert to Roman Numerals
    CS Crash System
    CSL Curse and Swear Loudly
    CU Convert to Unary
    CVG Convert to Garbage
    CWOM Complement Write-only Memory
    CZZC Convert Zone to Zip Code
    DBTP Drop Back Ten and Punt
    DBZ Divide by Zero
    DC Divide and Conquer
    DDC Dally During Calculations
    DLN Don't Look Now...
    DMNS Do What I Mean, Not What I Say
    DMPE Decide to Major in Phys. Ed.
    DMPK Destroy Memory Protect Key
    DNPG Do Not Pass Go
    DO Divide and Overflow
    DOC Drive Operator Crazy
    DPMI Declare Programmer Mentally Incompetent
    DPR Destroy Program
    DTC Destroy This Command
    DTE Decrement Telephone Extension
    DTVFL Destroy Third Variable From Left
    DW Destroy World
    EBB Edit and Blank Buffer
    ECO Electrocute Computer Operator
    EEOIFNO Execute Every Other Instruction From
    Now On
    EFD Emulate Frisbee Using Disk Pack
    EIAO Execute In Any Order
    EIOC Execute Invalid Op-code
    EMPC Emulate Pocket Calculator
    EMSE Edit and Mark Something Else
    ENF Emit Noxious Fumes
    EP Execute Programmer
    EPI Execute Programmer Immediately
    EROS Erase Read-only Storage
    EXOP Execute Operator
    EXPP Execute Political Prisoner
    FLI Flash Lights Impressively
    FSM Fold, Spindle and Mutilate
    FSRA Forms Skip and Run Away
    GCAR Get Correct Answer Regardless
    GDP Grin Defiantly at Programmer
    GFD Go Forth and Divide
    GFM Go Forth and Multiply
    HCF Halt and Catch Fire
    HCP Hide Central Processor
    IAE Ignore All Exceptions
    IBP Insert Bug and Proceed
    IIB Ignore Inquiry and Branch
    ISC Insert Sarcastic Comments
    JTZ Jump to Twilight Zone
    LAP Laugh At Programmer
    LCC Load and Clear Core
    LPA Lead Programmer Astray
    MAZ Multiply Answer by Zero
    MBR Multiply and be Fruitful
    MLR Move and Lose Record
    MW Malfunction Whenever
    MWAG Make Wild-Assed Guess
    MWT Malfunction Without Telling
    OML Obey Murphy's Laws
    P$*! Punch Obscenity
    PBC Print and Break Chain
    PD Play Dead
    PDSK Punch Disk
    PEHC Punch Extra Holes in Cards
    PFD Punt on Fourth Down
    PI Punch Invalid
    PNRP Print Nasty Replies to Programmer
    POCL Punch Out Console Lights
    POPI Punch Operator Immediately
    PVLC Punch Variable Length Card
    RA Randomize Answer
    RASC Read and Shred Card
    RCB Read Command Backwards
    RD Reverse Directions
    RDA Refuse to Disclose Answer
    RDB Run Disk Backwards
    RDS Read Sideways
    RIRG Read Inter-record Gap
    RLI Rotate Left Indefinitely
    ROC Randomize Op Codes
    ROO Rub Out Operator
    RPB Read Print and Blush
    RPM Read Programmer's Mind
    RRSGWSSNK Round and Round She Goes, Where
    She Stops, Nobody Knows
    RSD On Read Error Self-Destruct
    RSTOM Read From Store-only Memory
    RTS Return To Sender
    RWCR Rewind Card Reader
    SAI Skip All Instructions
    SAS Sit And Spin
    SCCA Short Circuit on Correct Answer
    SFH Set Flags to Half-mast
    SFT Stall For Time
    SHAB Shift a Bit
    SHABM Shift a Bit More
    SLP Sharpen Light Pen
    SMR Skip on Meaningless Result
    SOS Sign off, Stupid
    SOT Sit on a Tack
    SPS Set Panel Switches
    SPSW Scramble Program Status Word
    SQPC Sit Quietly and Play With Your Crayons
    SRDR Shift Right Double Ridiculous
    SRSD Seek Record and Scar Disk
    SRZ Subtract and Reset to Zero
    SSJ Select Stacker and Jam
    STA Store Anywhere
    STROM Store in Read-only Memory
    TARC Take Arithmetic Review Course
    TDB Transfer and Drop Bits
    TLO Turn Indicator Lights Off
    TN Take a Nap
    TPDH Tell Programmer to Do it Him/Herself
    TPF Turn Power Off
    TPN Turn Power On
    TTA Try, Try Again
    UCB Uncouple CPU and Branch
    UER Update and Erase Record
    ULDA Unload Accumulator
    UP Understand Program
    UPCI Update Card In Place
    WBT Water Binary Tree
    WEMG Write Eighteen Minute Gap
    WF Wait Forever
    WHFO Wait Until Hell Freezes Over
    WI Write Illegibly
    WPM Write Programmer's Mind
    WWLR Write Wrong-Length Record
    WSWW Work in Strange and Wondrous Ways
    XSP Execute Systems Programmer
    ZAR Zero Any Register
    ACC Advance CPU clock
    AEE Absolve engineering errors
    BB Branch on bug
    BIRM Branch on index register missing
    BOHP Bribe operator for higher priority
    BSO Branch on sleepy operator
    CCD Clear core and dump
    EC Eat card
    EM Emulate 407
    EMW Emulate Matag washer
    IAI Inquire and ignore
    KCE Kill consultant on error
    LSPSW Load and scrample PSW
    MST Mount scotch tape
    PBC Print and break chain
    PLSC Perform light show on console
    PPSW Pack program status word
    RBT Rewind and break tape
    RDI Reverse dum immediate
    RT Reduce thruput
    SIP Store indefinite precision
    SPD Spin dry disc
    SRCC Select reader and chew cards
    TSH Trap secretary and halt
    UNPD Unplug and dump

  2. я угадал, это юмор?...

    Ответы: (4)
  3. а где мои любимые CLI и STI

  4. Удивил типа.
    Я писал на бумажке программки типа: 107,85,2,66... потом набирал на программаторе и записывал на ПЗУ.
    Если ошибка - ПЗУ "жарил" 2 часа и записывал снова.

    Ответы: (5) (9)
  5. (1) Да, конечно.

  6. (3) Напугал типа. Я эти программки писал, когда еще ПЗУ не было. Самая крутая мелкосхема у нас в ЦП была - JK-триггер

    Ответы: (7)
  7. короче, пошел обычный классический писькомер ;)...

    Ответы: (8) (11) (13)
  8. +(5) А для того, чтобы загрузить компьютер, нужно было ввести через переднюю панель маленькую прогу, в двоичном коде, называемую - Key-In-Boot, размером 16 байт, запустить ее, засунуть перфоленту в телетайп, типа ASR-33, и далее грузиться с магнитной ленты

    Ответы: (10)
  9. 24.10.2014 20:57:55 отредактировано syktyk

    (6) Какой может быть писькомер, если он начинал с протеза (ПЗУ) :) Мы и слова такого еще не знали :)

    Ответы: (13)
  10. Эльниньо Если ошибка - ПЗУ "жарил" 2 часа и записывал снова.

    Если на то пошло, это называется ППЗУ, а настоящее ПЗУ - на 256 бит, на основе нихрома. При прожиге - ошибку не исправить. Все выкидывается и начинается снова

  11. syktyk размером 16 байт

    Соврал, по инерции :( Там байтовой адресации не было, были слова 16-и разрядные. И прога была в 16 слов

  12. (6) Я бы добавил слово пенсионерский писькомер )

    Ответы: (14)
  13. Вот такая была у меня Первая Любовь:


    Ответы: (15) (16) (19) (26)
  14. syktyk (6) Какой может быть писькомер, если он начинал с протеза (ПЗУ) :) Мы и слова такого еще не знали :)

    ПЗУ круть неимоверная.
    Самые первые проги на перфокарты набивали.

    Ответы: (15)
  15. (11) Зато всем 1эсникам, как только они начинают 1эсить, сразу начинает капать пенсия, в связи с присвоением почетного звания - "Инвалид умственного труда" :)

    Ответы: (24)
  16. Эльниньо Самые первые проги на перфокарты набивали.

    :) Слабак! Реальные пацаны все делали через консоль, как (12). Тестирование (конечно упрощенное), даже систему дебажили.

  17. Если глянуть на (12), то верхние два ряда представляют из себя инфодисплей и клавиши ввода.
    Эльниньо скажи мне - почему они так сгруппированы? :)

    Ответы: (19)
  18. Если 1Cv8.exe на перфокарты набить - сколько мегатонн перфокарт получится?

    Ответы: (18) (27)
  19. Эльниньо Если 1Cv8.exe на перфокарты набить

    А что не Выньдоуз 8.1 ?

    Ответы: (20)
  20. syktyk Если глянуть на (12), то верхние два ряда представляют из себя инфодисплей и клавиши ввода.
    Эльниньо скажи мне - почему они так сгруппированы? :)

    15 бит?

    Ответы: (21) (28)
  21. syktyk А что не Выньдоуз 8.1 ?

    Столько бумаги на Земле не найдётся

  22. 24.10.2014 21:27:24 отредактировано syktyk

    (19) Не. Крайняя правая клавиша не имеет над собой индикатора. Просто служебная. Разрядность - стандартная. 16 бит.

    Ответы: (22)
  23. + (21) Это клавиша Clear - обнуление консоли.

  24. Вот небольшой фильмец, как работать с Фортраном на H-316

  25. (14) Да ладно, моя первая программа, которая принесла мне денег, была написана на Си для микроконтроллера )

    Ответы: (25)
  26. Fynjy моя первая программа

    Ключевое слово - первая! :) И что потом? :) Не надо стесняться, мы все тронуты 1эсом, в той, или иной степени :)

    Ответы: (30)
  27. Первая программа, которая принесла мне денег, была написана на асме для (12), как дополнение к существующей системе АСУТП - оформлялась рацпредложением.Это такой способ стимуляции был, чтоб денюжку дополнительную заработать. А С - тогда еще и не знали в СССР. Фортран, Кобол, Алгол - все.

  28. (17) всего лишь пара тонн

  29. не понял. а где моё любимое int21h ?

    Ответы: (31) (32)
  30. (25) Потом мальчик Билли пошел по наклонной ... Был фокспро, а затем ... Аксес и бейсик ) ну и на самом дне 1С )))

  31. (29) Их ишшо тогда не было :(

  32. (29) Это досовское прерывание. Ниже его по уровню биосовские прерывания, но и они получили популярность чуть позже.
    Хотя как я могу рассуждать так смело, если на асме начал пробовать силы только с 1998 года

  33. да, лучше биосовские прерывания, например, ввод-вывод 14h

    Ответы: (35)
  34. помню, писал какую-то поделку на асме с прямым чтением диска через биос.
    знатно получилось - видимо, в код закралось ошибочка, короче, потёр весь диск себе вместе с рефератами и курсовыми :)
    долго потом красноглазил, чтобы успеть заново наваять

  35. andrewks лучше биосовские прерывания

    Дануна! Биосовские обработки работают медленнее

    Ответы: (36) (37)
  36. (35) сфигаль?

  37. (35) Быстрее. Они уровнем ниже. При чем дос часто как раз биос использует

    Ответы: (38)
  38. (37) Выборка из ПЗУ идет медленнее, чем из ОЗУ. Плюс байтовая организация шины данных

    Ответы: (39)
  39. (38) э-э-э... при чём здесь ПЗУ/ОЗУ?

    Ответы: (40)
  40. (39) Дык БИОС сидит в ПЗУ, не?

    Ответы: (41) (42)
  41. (40) и? ты хочешь сказать, что он прямо в ПЗУ исполняется?

    Ответы: (43)
  42. (40) Сидит там, но потом в память грузится. У доса просто возможностей поболее. Т.е. там уже больше готовых модулей. А так он чуть помедленнее

  43. (41) Если нет SHADOW, то да. После загрузки ОС все прерывания перехватываются ею

    Ответы: (45)
  44. только MOV помню

  45. (43) чё-то ты загнался

    После нажатия кнопки включения компьютера блок питания производит самотестирование напряжений. Если все соответствует норме, то на процессор подается напряжение и сигнал сброса. Процессор сбрасывает свою память и начинает работу.
    Первое что делает процессор - получает из BIOS POST-программу (Power-On Self Test - самотестирование при включении). В соответствие с этой программой начинается тестирование составляющих компьютера:

    Тестирование процессора;
    Копирование BIOS в оперативную память и проверка контрольных сумм BIOS;
    Проверка регенерации памяти и тестирование 64 Кбайт нижней памяти;
    Настройка чипсета;
    Поиск и настройка видеоадаптера - именно в этот момент на экране монитора появляются первые сообщения;
    Полное тестирование оперативной памяти;
    Тестирование клавиатуры и других устройств ввода-вывода;
    Проверка контрольной суммы CMOS и состояния батарейки;
    Инициализация COM и LPT-портов;
    Инициализация дисководов и IDE-устройств;
    Распределение системных ресурсов;
    Поиск других устройств, содержащих свой BIOS;
    Вызов программного прерывания BIOS INT 19h, по которому ищется загрузочный сектор.

    Управление передается загрузчику операционной системы, который загружает ОС в компьютер.

    Ответы: (48)
  46. BIOS работает в 16-разрядном режиме. Если брать чистый ДОС, то он немного использовал функции БИОСа, чтобы освобождать место в памяти, но потом все ушло к драйверам

  47. или вот ещё:

    После включения персонального компьютера (ПК) на базе процессора семейства Intel 80x86, его процессор начинает работу в реальном режиме адресации с сегментной организацией и выполнение инструкций процессора с адреса FFFF:0, инициализированного в паре регистров CS:IP (Code Segment : Instruction Pointer) после снятия сигнала RESET. В конце доступного процессору адресного пространства оперативной памяти из ПЗУ материнской платы отображен загрузчик базовой системы ввода-вывода (BIOS), на который передается выполнение по инструкции безусловного перехода, отображенной по адресу FFFF:0.


  48. andrewks Управление передается загрузчику операционной системы, который загружает ОС в компьютер.

    Вот, вот.

    Ответы: (50) (51)
  49. А я вот уже не помню разницу обнулений. Почему многие обнуляют регистры xor-ом, а майкрософт sub-ом. Там как-то исторически сложилось, но вот не помню уже. А ещё помню камасутру с защищённым режимом. Пока выйдешь в него, позеленеть можно было

  50. (48) и?

  51. Мне вообще архитектура x86 и пр. Интел не нравится.

    (48) А загрузчик ОС, передает управление ОС. Ваш КЭП :)

    Ответы: (53)
  52. http://www.bioscentral.com/misc/biosbasics.htm

    Тут есть немного. Конечно, некоторый интерактив БИОСа и ОС присутствует, но не в такой степени

  53. syktyk А загрузчик ОС, передает управление ОС. Ваш КЭП :)

    ты с темы-то не съезжай )

    Ответы: (55)
  54. Смысл в том, что накладно вызывать 16-битный софт из 32-х битного

  55. andrewks с темы-то не съезжай

    Я и не съезжаю. :) Посто после того, как ОС получила управление, то на ввод/вывод начинают работать ее драйвера. В ДОС было немного проще.

    Ответы: (56)
  56. syktyk Посто после того, как ОС получила управление, то на ввод/вывод начинают работать ее драйвера.

    ну, пусть работают. это не мешает работать через низкоуровневые биос-прерывания.
    по крайней мере, с ДОС не мешало, сейчас, конечно, всё гораздо сложнее в форточках

    Ответы: (57)
  57. 27.10.2014 14:16:42 отредактировано syktyk

    (56) Конечно не мешает, и даже обработка клавиатуры и RTC осталась за биос.
    Вот про скорость ОЗУ/ПЗУ - "Shadowing

    A technique used to increase a computer's speed by using high-speed RAM memory in place of slower ROM memory (RAM is about three times as fast as ROM). On PCs, for example, all code to control hardware devices, such as keyboards, is normally executed in a special ROM chip called the BIOS ROM. However, this chip is slower than the general-purpose RAM that comprises main memory. Many PC manufacturers, therefore, configure their PCs to copy the BIOS code into RAM when the computer boots. The RAM used to hold the BIOS code is called shadow RAM."


    Ответы: (59) (70)
  58. 27.10.2014 14:19:25 отредактировано syktyk

    Обязанности БИОСа - инициализация проца, RTC, сев. и юж. моста, клавы. Все. Больше и ничего не надо. И прочитать бутсектор :)

    Ответы: (61)
  59. (57) ты ещё про перфокарты вспомни.
    давно уже всё в памяти выполняется, ещё со времён древних ДОСов

  60. И это... Не "язык Ассемблер", а "язык Ассемблера". Так нас в универе учили

    Ответы: (62)
  61. (58) нифига. ввод-вывод ДОСовский юзает те же самые биосовские прерывания

    Ответы: (65)
  62. 1Сергей Не "язык Ассемблер"

    а кто говорил "язык Ассемблер"? ты первый :)

  63. Почему ублюдочные CISC вытеснили с рынка RISC?

    Ответы: (64)
  64. (63) потому, что "доступно и всерьёз!" ©

  65. (61) Ключевое слово из БИОС - БАЗОВАЯ. Поэтому, там только недавно появились функции работы с USB. И нет функций работы со SCSI. Как и многих других. Элементарные функции в/в - клава, лпт-порт, ком-порт достаточно медленные, поэтому их ДОС и юзала

  66. Даже загрузка с CD-ROM появилась не сразу, и поддержка реализовывалась через загружаемые драйверы.

    Ответы: (68)
  67. Я же не говроил, что работа через БИОС невозможна. Она возможна, но медленна. И только с ограниченным набором устройств.

    Ответы: (69)
  68. syktyk Даже загрузка с CD-ROM появилась не сразу

    я бы даже сказал - даже само CD-ROM появилось не сразу ;)

  69. (67) да сфигаль медленно-то? мне вот это непонятно

    Ответы: (70)
  70. (69) Ты (57) прочитал? И то, что биос переписывается в шедоу-память не говорит ни о чем. Есть ядро ОС - kernel, на которое и ложится весь ввод/вывод в дальнейшем.

    Ответы: (71)
  71. (70) объясни-ка мне, тупому, как ДОС-обёртка, использующая биосовские обработчики, может работать быстрее прямых вызовов биосовских обработчиков?

    Ответы: (72)
  72. (71) ДОС - это не обертка. Там есть свое ядро, свои драйвера, которые переписывают Interrupt Vector Table., так, как им надо . И не всегда дос использует биосовские обработчики для быстрых устройств.
    Я не могу понять твой вопрос. Сейчас хочу найти инфу по архитектуре ДОС.
    А с Виндой ты понял, почему БИОС там не используют?

    Ответы: (73) (74)
  73. (72) про винду врать не буду - не копал этот вопрос. но понимаю, что там всё по-другому.

    подозреваю, что вин-драйверы напрямую общаются с устройством, через порты, но не уверен, что не используются биос-прерывания

  74. (72)

    Все программные прерывания можно разделить на две группы.

    Первая группа - это прерывания базовой системы ввода/вывода BIOS. Обработчик этих прерываний записан в микросхеме постоянного запоминающего устройства (ПЗУ), расположенной на основной плате компьютера (motherboard). Обработчики прерываний BIOS работают с портами ввода/вывода стандартных устройств компьютера и обслуживают соответствующие аппаратные прерывания.

    В мире выпускается очень много различных моделей основных плат для компьютеров, совместимых в той или иной степени с IBM PC. Использование BIOS позволяет до некоторой степени стандартизовать программный интерфейс с аппаратурой, так как производитель основной платы может учесть в BIOS все аппаратные особенности.

    Вторая группа - прерывания MS-DOS. Обработчики этих прерываний находятся в файлах io.sys и msdos.sys.

    Расширение базовой системы ввода/вывода MS-DOS, расположенное в файле io.sys, является как бы прослойкой между операционной системой MS-DOS и BIOS. Для выполнения операций ввода/вывода ядро MS-DOS обращается как к самой базовой системе ввода/вывода BIOS, так и к ее расширению, загружаемому в оперативную память из файла io.sys.


    Ответы: (75)
  75. (74) Давай чуть позже вернемся, мне некогда пока. Ты про какие прерывания говорил? Работа с диском?

    Ответы: (76)
  76. (75) работа с диском 13h, с клавиатурой 09h, экраном 10h

    и досовские 21h

    Ответы: (80) (82)
  77. Ну когда же наконец интеловский колхозные процы сменять нормальные с 8-мю уровнями аппаратных прерываний?

  78. я писал ос на асме

  79. конкретно на тасме
    но больше всего нравится фасм

  80. (76) а 9,10,13 не досовские будто

  81. а понял,...это биосовские, оказывается, коды

  82. andrewks работа с диском 13h, с клавиатурой 09h, экраном 10h
    и досовские 21h

    Ладно, ОК! Я немного затупил :( Действительно, при шедоу (в ДОСе) все работает нормально. 21h - это вообще ДОС прерывание, как ты скрупулезно подметил, обработчик приходит вместе с ДОСом. А вот для виндов, которые работают в 32-разрядном (защищенном) режиме, работа с БИОСом будет вызывать определенные затруднения и замедление, т.к. БИОС работает в real-mode . И, скорее всего, win32 практически не использует БИОС.
    Сейчас это от меня уже далеко :) Последние интеловские процы, которыя я ковырял, были 386. И даже не с ДОСом или Виндой :)

    Мое Имхо, последний гормальный проц от Интела - это 8085, хотя Z-80 - намного лучше :)

    Ответы: (83)
  83. syktyk Мое Имхо, последний гормальный проц от Интела - это 8085, хотя Z-80 - намного лучше :)

    Нормальных камней у Интела отродясь не было.

    Ответы: (84) (86)
  84. 4 мес. назад

    Эльниньо Нормальных камней у Интела отродясь не было.


  85. [smile=:D] [smile=:D] [smile=:D]

  86. Эльниньо Нормальных камней у Интела отродясь не было.

    Это правда. Интел - полнейшее говно. Но пока не придумали ничего лучше, приходится пользоваться интелом. Хотя, Эпол щас делают годные процессоры, но пока на них Виндовс не устанавливается, поэтому ждем...

    Ответы: (89)
  87. Рыжий автоугонщик еще и по камням специалист :)

  88. Урка на все руки блд

  89. Разоблачитель Фейков Интел - полнейшее говно. Но пока не придумали ничего лучше, приходится пользоваться интелом.

    amd ryzen

    Ответы: (90)
  90. Луч света amd ryzen

    Тоже говно

  91. вообще не удивлен, кто поднял ветку 9-летней давности ;)...

или зарегистрируйтесь чтобы ответить!