ນີ້ແມ່ນ crasm ຄໍາສັ່ງທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍສະຖານີເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
crasm - ຕົວປະກອບຂ້າມສໍາລັບ 6800/6801/6803/6502/65C02/Z80
ສະຫຼຸບສັງລວມ
ບ້າ [-or codefile] [-slx] asmfile
ປະກອບໂຄງການ microprocessor asmfile ແລະຜະລິດໄຟລ໌ຜົນຜະລິດ codefile ໃນ Intel HEX
ຫຼືຮູບແບບ Motorola S Code. ບັນຊີລາຍຊື່ໂຄງການແລະຕາຕະລາງສັນຍາລັກແມ່ນຍັງຜະລິດຢູ່ໃນ
ຜົນຜະລິດມາດຕະຖານ. ສະບັບປະຈຸບັນຂອງ ບ້າ ສາມາດປະກອບໂຄງການສໍາລັບການ 6800, 6801,
6803, 6502, 65C02, ແລະ Z80 ໂຮງງານຜະລິດ. ບັນຊີລາຍຊື່ເຕັມຈະຖືກພິມອອກເມື່ອທ່ານຮຽກຮ້ອງ ບ້າ
ໂດຍບໍ່ມີການໂຕ້ຖຽງ.
OPTIONS
-o codefile
ລະບຸຊື່ຂອງໄຟລ໌ຜົນຜະລິດ. ບໍ່ມີໄຟລ໌ຜົນຜະລິດແມ່ນຜະລິດໂດຍບໍ່ມີການນີ້
ທາງເລືອກ.
-s ປິດການເຕືອນໄພ.
-l ປິດການທໍາງານຜົນຜະລິດລາຍການໂຄງການ.
-x ປິດການສົ່ງອອກຕາຕະລາງສັນຍາລັກ.
SYNTAX
ແຕ່ລະສາຍຂອງໂຄງການປະກອບຄວນປະຕິບັດຕາມຫນຶ່ງໃນແມ່ແບບດັ່ງຕໍ່ໄປນີ້, ບ່ອນທີ່
ວົງເລັບ delimit ພາກສ່ວນທາງເລືອກ.
[;ຄວາມຄິດເຫັນ]
ປ້າຍ = ການສະແດງອອກ [;ຄວາມຄິດເຫັນ]
[ປ້າຍ] ລະລຶກ Operand [;ຄວາມຄິດເຫັນ]
ຄຳເຫັນແມ່ນແນະນຳໂດຍເຄື່ອງໝາຍຈຸດ (;) ແລະຂະຫຍາຍໄປໃນຕອນທ້າຍຂອງເສັ້ນ. ປ້າຍກຳກັບ
ຕົວລະບຸທີ່ມີເຖິງ 36 ຕົວອັກສອນທີ່ເປັນຕົວເລກ ແລະ ຕົວເລກ (ລວມທັງໄລຍະເວລາ ແລະ ຂີດກ້ອງ).
ປ້າຍກຳກັບບໍ່ສາມາດເລີ່ມຕົ້ນດ້ວຍຕົວເລກໄດ້. ຮູບແບບຂອງຊ່ອງ mnemonics ແລະ operands ແມ່ນຂຶ້ນກັບ
ໃນ micro-processor ທີ່ເລືອກ. Mnemonics ຈໍານວນຫນ້ອຍແມ່ນຖືກຕ້ອງສໍາລັບໂປເຊດເຊີທັງຫມົດແລະມີ
ໃຊ້ເພື່ອໃຫ້ຄຳແນະນຳແກ່ຜູ້ປະກອບການ. ເຫຼົ່ານີ້ແມ່ນເອີ້ນວ່າ "pseudo-mnemonics".
ປ້າຍກໍາກັບ
ປ້າຍກຳກັບແມ່ນຕົວລະບຸທີ່ເປັນຕົວແທນ
- ທີ່ຢູ່ຢ່າງແທ້ຈິງ,
— ທີ່ຢູ່ພີ່ນ້ອງກັນ (ລະຫັດເອກະລາດຕໍາແຫນ່ງ),
- ລົງທະບຽນ,
- ບັນຊີລາຍຊື່ຂອງການຈົດທະບຽນ,
— ບິດສະເພາະຢູ່ໃນທີ່ຢູ່ສະເພາະໃດຫນຶ່ງ,
— ຫຼື mnemonic.
ປ້າຍກຳກັບສ່ວນຫຼາຍແມ່ນປະກອບດ້ວຍ 36 ຕົວອັກສອນທີ່ເປັນຕົວເລກ ແລະ ຕົວເລກ, ໄລຍະເວລາ (.) ຫຼື
ຂີດກ້ອງ (_). ປ້າຍກຳກັບບໍ່ສາມາດເລີ່ມຕົ້ນດ້ວຍຕົວເລກໄດ້. ພວກເຂົາເຈົ້າແມ່ນກໍລະນີທີ່ບໍ່ມີຄວາມຮູ້ສຶກ.
ປ້າຍກຳກັບເລີ່ມຕົ້ນດ້ວຍໄລຍະເວລາ (.) ແມ່ນປ້າຍກຳກັບທ້ອງຖິ່ນທີ່ມີຂອບເຂດຈຳກັດ
ມະຫາພາກທີ່ພວກມັນຖືກກຳນົດ, ຫຼືສ່ວນລະຫັດທີ່ຂັ້ນດ້ວຍ pseudo-mnemonics
CODE or DUMMY.
ປ້າຍກຳກັບ "ດາວ" ທີ່ກຳນົດໄວ້ລ່ວງໜ້າ (*) ເປັນຕົວແທນຂອງຕົວຕ້ານໂຄງການໃນປະຈຸບັນ, ນັ້ນແມ່ນ,
ທີ່ຢູ່ບ່ອນທີ່ຄໍາແນະນໍາການຕິດຕັ້ງລະຫັດຕໍ່ໄປຈະໄດ້ຮັບການເຂົ້າລະຫັດ. ອື່ນທີ່ກຳນົດໄວ້ລ່ວງໜ້າ
ປ້າຍກຳກັບລວມມີທັງໝົດ pseudo-mnemonics, micro-processor ສະເພາະ mnemonics ແລະລົງທະບຽນ
ຊື່.
ຄົງທີ່
ການປະກອບຮັບຮູ້ຕົວເລກຄົງທີ່ທີ່ສະແດງອອກເປັນເລກທົດສະນິຍົມ, ເລກຖານສິບຫົກ, ເລກແປດ,
ຄູ່, ຫຼື ascii.
┌──────────────────────────────────────── ──────────┐
│ປະເພດ ຮູບແບບ ຕົວຢ່າງ │
├──────────────────────────────────────── ──────────┤
│ ທົດສະນິຍົມ ຄັກ 1234, 675, 12, 1, ແຕ່ບໍ່ແມ່ນ 0.12. │
├──────────────────────────────────────── ──────────┤
│ເລກຖານສິບຫົກ $ຄັກ $fd12, $2AC, $0. │
│ ຄັກH 03H, 2da7H, 0FC84H, ແຕ່ບໍ່ແມ່ນ FC84H. │
│ 0Xຄັກ 0x03, 0x2AC, 0Xfc84. │
├──────────────────────────────────────── ──────────┤
│ ແປດ ຄັກQ 377Q, 012412Q. │
├──────────────────────────────────────── ──────────┤
│ ຄູ່ %ຄັກ % 01110110, % 1100. │
│ ຄັກB 01110110B, 1100B. │
│ 0Bຄັກ 0b1100 │
├──────────────────────────────────────── ──────────┤
│ascii 'cccc' 'ກ', 'AB', '"', '\n', '\''. │
│ "cccc" "\t", "\"", "a'b". │
└──────────────────────────────────────── ──────────┘
ສຳ ນວນ
ເຊັ່ນດຽວກັນກັບປ້າຍຊື່, ການສະແດງສາມາດເປັນຕົວແທນທີ່ຢູ່ຢ່າງແທ້ຈິງ (abs), ທີ່ຢູ່ພີ່ນ້ອງສໍາລັບ
ລະຫັດເອກະລາດຕໍາແຫນ່ງ (rel), ທະບຽນ (reg), ຫຼືບັນຊີລາຍຊື່ຂອງທະບຽນ (ລົງທະບຽນ), ຫຼື ກ
ອ້າງອີງເຖິງບາງສ່ວນທີ່ຢູ່ສະເພາະໃດຫນຶ່ງ (bspec).
ໂຕປະຕິບັດການຕໍ່ໄປນີ້ຖືກຮັບຮູ້ຢູ່ໃນການສະແດງອອກ.
┌────────────────────────────────────────── ───────────┐
│syntax ຜົນ ລາຍລະອຽດ │
├──────────────────────────────────────── ────────────┤
│ abs{abs} bspec bit ອ້າງອິງ, eg ເປຍ{3} │
│ ADDR(abs) abs ທີ່ຢູ່ຈາກການອ້າງອີງເລັກນ້ອຍ │
│ BIT(abs) abs ຈຳນວນບິດຈາກການອ້າງອີງເລັກນ້ອຍ │
├──────────────────────────────────────── ────────────┤
│ - abs abs ການເສີມສອງຢ່າງ │
│ ~ abs abs ການເສີມຂອງຫນຶ່ງ │
├──────────────────────────────────────── ────────────┤
│ abs << abs abs ເລື່ອນຊ້າຍ │
│ abs >> abs abs ປ່ຽນຂວາ │
├──────────────────────────────────────── ────────────┤
│ abs | abs abs ບິດບິດ ຫຼື │
│ abs & abs abs bitwise ແລະ │
│ abs ^ abs abs ບິດບິດ xor │
├──────────────────────────────────────── ────────────┤
│ abs * abs abs ຄູນ │
│ abs * abs abs ພະແນກ │
├──────────────────────────────────────── ────────────┤
│ abs + abs abs ນອກຈາກນັ້ນ │
│ rel + abs rel ນອກຈາກນັ້ນ │
│ abs - abs abs ການຫັກລົບ │
│ rel - abs rel ການຫັກລົບ │
│ rel - rel abs ການຫັກລົບ │
├──────────────────────────────────────── ────────────┤
│ reg - reg ລົງທະບຽນ ໄລຍະລົງທະບຽນ │
│ ລົງທະບຽນ \ reg ລົງທະບຽນ ລາຍຊື່ລົງທະບຽນ │
└───────────────────────────────────────── ───────────┘
ຕາຕະລາງລາຍຊື່ຕົວປະຕິບັດການຕາມລໍາດັບຂອງການຫຼຸດລົງກ່ອນຫນ້າ. ວົງເລັບສາມາດຖືກນໍາໃຊ້ເພື່ອ
ຫຼີກເວັ້ນການບໍ່ແນ່ນອນ. ການເຕືອນໄພແມ່ນຖືກສ້າງຂຶ້ນເມື່ອການສະແດງອອກທັງຫມົດຖືກອ້ອມຮອບດ້ວຍ
ວົງເລັບແລະສາມາດສັບສົນກັບຮູບແບບທີ່ຢູ່ micro-processor.
ຕົວຢ່າງ:
(ພື້ນຖານ+$12) >> 8 & 0xff00
'A'-80H
(ຖານ+0x12)
ຕົວຢ່າງສຸດທ້າຍເຮັດໃຫ້ເກີດການເຕືອນໄພເພາະວ່າວົງເລັບບໍ່ຈໍາເປັນແລະອາດຈະເປັນໄປໄດ້
ແນະນໍາໃຫ້ເປັນຮູບແບບການແກ້ໄຂທີ່ຢູ່ຈຸລະບົບປະມວນຜົນ.
ການສະແດງອອກເລກເລກທັງໝົດຖືກປະເມີນຢູ່ໃນ 32 bits. ການດໍາເນີນງານເລກຄະນິດ overflow
ງຽບໆ. ຫຼັງຈາກນັ້ນ, ຄ່າເລກຄະນິດຈະຖືກຕັດອອກຕາມຂະໜາດທີ່ບົ່ງບອກໂດຍ micro-
ໂປເຊດເຊີ mnemonic. ການຕັດນີ້ອາດຈະເຮັດໃຫ້ເກີດຂໍ້ຄວາມເຕືອນ.
ຕົວຢ່າງ: ຄຳແນະນຳຕໍ່ໄປນີ້ທັງໝົດ
(6502) lda #$1234
(6800) ລາດາ $1234,x
(Z80) ld (ix+0C2H), ຂ
ເຮັດໃຫ້ເກີດການເຕືອນໄພ
>>> ຄໍາເຕືອນ: ການດໍາເນີນງານ overflow
ຢ່າງໃດກໍຕາມການສະແດງອອກ
$1123454 * 1298992
ລົ້ນຢ່າງງຽບໆ.
Pseudo-mnemonics
pseudo-mnemonics ຕໍ່ໄປນີ້ຖືກຮັບຮູ້ສະເຫມີ.
CPU cpuname
ຊີ້ບອກປະເພດຂອງໂປເຊດເຊີຈຸນລະພາກທີ່ເລືອກ. ອັນນີ້ຕ້ອງປາກົດຂຶ້ນກ່ອນທີ່ຈະເປັນ
ຄໍາແນະນໍາສະເພາະຂອງໂປເຊດເຊີ. ຄຸນຄ່າທີ່ເປັນໄປໄດ້ຂອງ cpuname ຖືກລະບຸໄວ້ໃນເວລາທີ່ທ່ານ
ຂໍ ບ້າ ໂດຍບໍ່ມີການໂຕ້ຖຽງ. ບັນຊີລາຍຊື່ປະຈຸບັນປະກອບມີ 6800, 6801, 6803, 6502,
65C02, ແລະ Z80
OUTPUT binformat
ຊີ້ໃຫ້ເຫັນຮູບແບບຂອງໄຟລ໌ຜົນຜະລິດ. ການໂຕ້ຖຽງ binformat ສາມາດເອົາຄຸນຄ່າ SCODE
ສໍາລັບການຜະລິດໄຟລ໌ຜົນຜະລິດໂດຍໃຊ້ລະຫັດ S ຂອງ Motorola, ຫຼື HEX ສໍາລັບ Intel's Hex
ຮູບແບບ. ຄ່າເລີ່ມຕົ້ນແມ່ນຂຶ້ນກັບ micro-processor ທີ່ເລືອກ.
CODE
ຈໍາກັດຂອບເຂດຂອງປ້າຍທ້ອງຖິ່ນແລະແນະນໍາພາກສ່ວນໂຄງການ.
DUMMY ຈໍາກັດຂອບເຂດຂອງປ້າຍທ້ອງຖິ່ນແລະແນະນໍາພາກສ່ວນໂຄງການປອມແປງທີ່ມີ sole
ຜົນກະທົບແມ່ນການກໍານົດປ້າຍຊື່ໂດຍບໍ່ມີການສ້າງລະຫັດ.
ປ້າຍ EQU ການສະແດງອອກ
ປ້າຍ = ການສະແດງອອກ
ກໍານົດມູນຄ່າຂອງປ້າຍຊື່ ປ້າຍ. ປ້າຍກຳກັບທີ່ກຳນົດໂດຍໃຊ້ຄຳແນະນຳເຫຼົ່ານີ້ສາມາດເປັນໄດ້
ກໍານົດຄືນໃຫມ່ໃນໂຄງການຕໍ່ມາ.
[ປ້າຍ] DB ການສະແດງອອກ[,...,ການສະແດງອອກ]
ໃສ່ຂໍ້ມູນໄບຕ໌ທີ່ລະບຸ (8 ບິດ).
[ປ້າຍ] DW ການສະແດງອອກ[,...,ການສະແດງອອກ]
ໃສ່ຄໍາທີ່ລະບຸໄວ້ (16 bits). ຄໍາສັ່ງ byte ແມ່ນຂຶ້ນກັບ
ໂປເຊດເຊີຈຸນລະພາກທີ່ເລືອກ.
[ປ້າຍ] DL ການສະແດງອອກ[,...,ການສະແດງອອກ]
ໃສ່ຂໍ້ມູນຄວາມຍາວທີ່ລະບຸໄວ້ (32 ບິດ). ຄໍາສັ່ງ byte ແມ່ນຂຶ້ນກັບ
ໂປເຊດເຊີຈຸນລະພາກທີ່ເລືອກ.
[ປ້າຍ] DDB ການສະແດງອອກ[,...,ການສະແດງອອກ]
ໃສ່ double bytes ທີ່ລະບຸ (16 bits). ຄໍາສັ່ງ byte ແມ່ນກົງກັນຂ້າມກັບ
ຄໍາສັ່ງ byte ປົກກະຕິສໍາລັບ micro-processor ທີ່ເລືອກ.
[ປ້າຍ] ASC stringconstant
ໃສ່ຕົວແທນ ascii ຂອງ string stringconstant . ສາຍຕ້ອງເປັນ
delimited by double quotes. ລໍາດັບການຫລົບຫນີ C \r, \n, \t, \0, \', \", ແລະ \\
ຖືກຮັບຮູ້.
[ປ້າຍ] DS countexpr,[valexpr]
ແຊກ countexpr bytes ທີ່ມີຄ່າ valexpr. ຄ່າເລີ່ມຕົ້ນແມ່ນສູນ.
[ປ້າຍ] ຈັດເຂົ້າ EVEN
[ປ້າຍ] ຈັດເຂົ້າ ODD
ແຊກໄບທ໌ null ເພື່ອເຮັດໃຫ້ໂປຣແກຣມນັບເປັນຄູ່ ຫຼືຄີກ.
IF condexpr
...
ອື່ນ
...
ENDC
ສະພາແຫ່ງເງື່ອນໄຂ: ຖ້າການສະແດງອອກ condexpr ບໍ່ແມ່ນສູນ, ປະມວນຜົນສາຍທີ່ຕັ້ງ
ລະຫວ່າງ IF ແລະ ອື່ນ pseudo-mnemonics. ຖ້າບໍ່ດັ່ງນັ້ນປະມວນຜົນສາຍທີ່ຕັ້ງຢູ່
ລະຫວ່າງ ອື່ນ ແລະ ENDC pseudo-mnemonics. ຄໍາແນະນໍາການປະກອບເງື່ອນໄຂ
ສາມາດຮັງໄດ້. ໄດ້ ອື່ນ ພາກສ່ວນສາມາດຖືກລະເວັ້ນ.
ປ້າຍ ມາໂຄຣ
...
ENDM
ກໍານົດ mnemonic ໃຫມ່ ປ້າຍ ເທົ່າກັບຄໍາແນະນໍາທັງຫມົດທີ່ຕັ້ງຢູ່ລະຫວ່າງ
ມາໂຄຣ ແລະ ENDM pseudo-mnemonics. Invocations ຂອງມະຫາພາກສາມາດລະບຸບັນຊີລາຍຊື່ຂອງ
ຄຳສັ່ງທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ. ລໍາດັບລັກສະນະ \1, \2, ... \N ໃນມະຫາພາກ
ຄໍານິຍາມຖືກແທນທີ່ດ້ວຍຕົວປະຕິບັດການທີ່ສະຫນອງ. ລໍາດັບລັກສະນະ \0 is
ແທນທີ່ດ້ວຍຈໍານວນຕົວປະຕິບັດການທີ່ສະໜອງໃຫ້.
ອອກ
pseudo mnemonic ນີ້ສາມາດຖືກນໍາໃຊ້ພາຍໃນຄໍານິຍາມ macro ເພື່ອອອກຈາກມະຫາພາກ. ນີ້
ແມ່ນເປັນປະໂຫຍດໂດຍສົມທົບກັບ pseudo-mnemonics ປະກອບເງື່ອນໄຂ.
INCLUDE ຊື່ເອກະສານ
ບັງຄັບຕົວປະກອບເພື່ອປະມວນຜົນໄຟລ໌ທີ່ມີຊື່ ຊື່ເອກະສານ ໃນຈຸດປະຈຸບັນ.
LIST ON
LIST OFF
ເປີດໃຊ້ ຫຼືປິດການຜະລິດລາຍການ (ຄ່າເລີ່ມຕົ້ນເປີດຢູ່.)
ບັນຊີລາຍການ ON
ບັນຊີລາຍການ OFF
ເປີດຫຼືປິດການຜະລິດລາຍການສໍາລັບສາຂາທີ່ບໍ່ມີການເຄື່ອນໄຫວຂອງ a
ໂຄງສ້າງປະກອບຕາມເງື່ອນໄຂ (ຄ່າເລີ່ມຕົ້ນເປີດຢູ່.)
ລາຍການ ON
ລາຍການ OFF
ເປີດໃຊ້ຫຼືປິດການຜະລິດລາຍການສໍາລັບໄຟລ໌ລວມ (ຄ່າເລີ່ມຕົ້ນແມ່ນປິດ.)
MLIST ON
MLIST OFF
ເປີດຫຼືປິດການຜະລິດລາຍການສໍາລັບການຂະຫຍາຍມະຫາພາກ (ຄ່າເລີ່ມຕົ້ນແມ່ນ
ປິດ.)
NAM ຫົວຂໍ້
ລະບຸຊື່ ຫົວຂໍ້ ສໍາລັບສ່ວນຫົວຂອງຫນ້າລາຍຊື່.
ຫນ້າ
ເລີ່ມໜ້າລາຍຊື່ໃໝ່.
ຫນ້າ ຄໍລໍາ,ແຖວ
ລະບຸຂະໜາດຂອງໜ້າລາຍຊື່.
ຂ້າມ ຈໍານວນ
ຂ້າມ ຈໍານວນ ສາຍ.
ປະຕິບັດ ຂໍ້ຄວາມ
ສ້າງຂໍ້ຄວາມຜິດພາດ ຂໍ້ຄວາມ.
EXAMPLE
ນີ້ແມ່ນໂຄງການ 6502 ຂະຫນາດນ້ອຍ:
cpu 6502
ຄ່າໃຊ້ຈ່າຍ = $fded ; ການສະແດງ a ລັກສະນະ
* = $300 ; ປະຊຸມ at $300
ລະຫັດ
pstring ldy #0
.1 lda ຂໍ້ຄວາມ, y
Beq .2
jsr ຄ່າໃຊ້ຈ່າຍ
iny
.2 bne .1
rts
ຂໍ້ຄວາມ asc "ນີ້ is ໄດ້ ຂໍ້ຄວາມ "
ລະຫັດ
CREDITS
Leon Bottou, ກັນຍາ 1987.
ໃຊ້ crasm ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net