PDA

View Full Version : سوال: برنامه نویسی در assembly 68k



Zerocoder
پنج شنبه 16 اردیبهشت 1389, 03:29 صبح
سلام دوستان

اینجا کسی هست که در این زمینه حرفه داشته باشه؟:متفکر:

این هم :http://www.hvrsoftware.com/6800emu.htm شبیه سازی برنامه نویسی با ۶۸۰۰۰ هست

کمک در یک برنامه ساده میخوام که وقتی بهش عدد میدیم بتونه عدد رو بشکونه مثال:
۱۵ وارد میکنیم ۴ بده یعنی ۱۵ تشکیل شده از: ‍۱ و ۳ و ۵ و ۱۵
یا ۱۲ وارد میکنیم جواب بده ۶ یعنی ۱۲ از ۶ عدد مثل: ۱و ۲و ۳و ۴و ۶و ۱۲تشکیل شده.

با تشکر

tdkhakpur
جمعه 17 اردیبهشت 1389, 00:47 صبح
اینجا کسی هست که در این زمینه حرفه داشته باشه؟:متفکر:

این هم :http://www.hvrsoftware.com/6800emu.htm (http://www.hvrsoftware.com/6800emu.htm) شبیه سازی برنامه نویسی با ۶۸۰۰۰ هست

اگر منظورتان حل مسئله هست این موضوع چه ارتباطی به شبیه ساز دارد؟
در ضمن مسئله شما باید به چند قسمت تقسیم شود
1 - عدد را بصورت رشته بگیرید
2 - رشته را به عدد تبدیل کنید.
3 - بعد الگوریتم خودتان را پیاده سازی کنید
شما تا مرحله دوم کار را انجام بدید مرحله سوم خدا کریمه

Zerocoder
شنبه 18 اردیبهشت 1389, 12:57 عصر
این خوبه؟
ldaa x
ldab yاین خدایش آخرین زورمه!

tdkhakpur
شنبه 18 اردیبهشت 1389, 19:42 عصر
داخل همان سایت دمو هست و همچنین توضیحات کافی در مورد نحوه استفاده از آپ کدها قرار داده شده لیست زیر توضیحات مختصر در مورد کدهاست


================================================== =
Programming Reference
================================================== ==
Assembly statements contain the following fields:
[Label] Operation [operand] [comment]
Label: Can be used to define a symbol, to
skip the field use a blank or tab
Operation: Defines the opcode or directive
opcodes are not case sensitive
Operand: Contains an address or the data
ignored with inherent addressing
Comment: Used for software documentation
can be at end or start of statement
uses a semicolon to start the comment
Examples: label adda 3 ;comment here
adda label
clra ;inherent address
; this is a full line comment
================================================== ==
Assembler: Tag Description Example
Directives: ----------------------------------------
.org Where to put code .org $200
.equ Define Constant .equ 100
.set Define Constant .set 100
.rmb Reserve Memory .rmb 16
.byte Define Variable .byte 64
Array of bytes .byte 1,2,3
.word Define Variable .word 5000
array of words .word 1,2,3
.str Define string .str "text"
array of strings .str "a","b"
.end End of Program .end

================================================== ==
Number: Prefix Description Example
Format: ----------------------------------------
Decimal 320
$ Hex $240
$ Hex $240
% Binary %0110101
' Character 'm

================================================== ==
Operand: Format Description Examples REF
Formats: ----------------------------------------
Inherent clra H
#<data> Immediate ldaa #4 I
<data> Relative bra 10 R
<data> Direct,Extended ldaa 4 D,E
ldaa label
<data>,x Indexed ldaa 4,x X

================================================== ==
Instruction Reference
================================================== ==

Status Flags: H I N Z V C
| | | | | |
| | | | | --- Carry-Borrow
| | | | | --- Carry-Borrow
| | | | ------ Overflow
| | | --------- Zero
| | ------------ Negative
| --------------- Interrupt Mask
------------------ Half Carry
================================================== ==
Nnemonic Operation Mode Status
Branch and Jump -------------------------- HINZVC
BRA Branch Always R ------
BCS Branch if Carry Set [C=1] R ------
BCC Branch if Carry Clear [C=0] R ------
BMI Branch if Minus [N=1] R ------
BPL Branch if Plus [N=0] R ------
BVS Branch if Overflow Set [V=1] R ------
BVC Branch if Overflow Clear[V=0] R ------
BEQ Branch if Equal [Z=1] R ------
BNE Branch if Not Equal [Z=0] R ------
BLT Branch if < (signed) R ------
BLE Branch if <= (s
BLE Branch if <= (signed) R ------
BGE Branch if >= (signed) R ------
BGT Branch if > (signed) R ------
BLS Branch if Lower or Same (unsgn)R ------
BHI Branch if Higher (unsigned) R ------
BSR Branch to Subroutine R ------
JSR Jump to Subroutine EX ------
JMP Jump Absolute EX ------
RTS Return from Subroutine H ------
Accumulator Only ------------------------- HINZVC
===> NEMz can be either NEMA or NEMB <===
ASLz Arithmetic Shift Left A H --****
ASRz Arithmetic Shift Right A H --****
LSRz Logical Shift Right A H --0***
ROLz Rotate Left A H --****
RORz Rotate Right A H --****
CLRz Clear Accumulator A [A <- 0] H --0100
COMz One's Complement A H --**01
DECz Decrement A [A <- A - 1] H --***-
INCz Increment A [A <- A + 1] H --***-
NEGz Negat
NEGz Negate A [A <- 0 - A] H --****
PSHz Push Accumulator H ------
PULz Pull/Pop Accumulator H ------
TSTz Test A [A <- A - 0] H --**00
ABA Add Accumulators [A <- A + B] H *-****
CBA Compare Accumulators [A - B] H --****
DAA Decimal Adjust A H --****
SBA Subtract Accumulators [A<-A-B] H --****
TAB Transfer Accumulator [B <- A] H --**0-
TBA Transfer Accumulator [A <- B] H --**0-
Memory Reference ------------------------- HINZVC
===> NEMz can be either NEMA or NEMB <===
LDAz Load Accumulator [A <- M] IDXE --**0-
STAz Store Accumulator[M <- A] DXE --**0-
ADCz Add with Carry [A <- A+M+C]IDXE *-****
ADDz Add [A <- A+M] IDXE *-****
SBCz Subtract w. Carry[A <- A-M-C]IDXE --****
SUBz Subtract [A <- A-M] IDXE --****
BITz Bit Test [A and M] IDXE --**0-
ANDz Logical AND [A<- AandM] IDXE --**0-
EORz Exclusive OR
EORz Exclusive OR [A<- AxorM] IDXE --**0-
ORAz Inclusive OR [A<- Aor M] IDXE --**0-
CMPz Compare Memory [A - M] IDXE --****
ASL Arithmetic Shift Left XE --****
ASR Arithmetic Shift Right XE --****
LSR Logical Shift Right XE --0***
ROL Rotate Left Memory XE --****
ROR Rotate Right Memory XE --****
CLR Clear Memory [M <- 0] XE --0100
COM Complement Memory[M <- !M] XE --**01
DEC Decrement Memory [M <- M - 1] XE --***-
INC Increment Memory [M <- M + 1] XE --***-
NEG Negate Memory [M <- 0 - M] XE --****
TST Test Memory [M - 0] XE --**00
Stack and Index -------------------------- HINZVC
CPX Compare X IDXE ---*--
DES Decrement SP [SP <- SP - 1] H ------
DEX Decrement X [ X <- X - 1] H ---*--
INS Increment SP [SP <- SP + 1] H ------
INX Increment X [ X <- X + 1] H ---*--
LDS Load SP
LDS Load SP IDXE --**0-
LDX Load X IDXE --**0-
STS Store SP DXE --**0-
STX Store X DXE --**0-
TSX Transfer SP,X [X <= SP + 1] H ------
TXS Transfer X,SP [SP <= X - 1] H ------
Status Flags ----------------------------- HINZVC
CLC Clear Carry H -----0
CLV Clear Overflow H ----0-
CLI Clear Interupt Mask H -0----
SEC Set Carry H -----1
SEV Set Overflow H ----1-
SEI Set Interupt Mask H -1----
TAP Set Status Mask [Flags<-ACC] H ******
TPA Load Status Flags [ACC<-Flags] H ------
Miscellaneous ---------------------------- HINZVC
NOP No Operation H ------
WAI Wait for key press H -1----
.................................................. ....
}

درسته این تالار مربوط به اسمبلی میشود ولی اگر منظورتان برنامه نویسی اتوماسیون صنعتی هست میتوانید در تالار برنامه نویسی سیستمهای embended تاپیکتان را ارسال کنید.
من در مورد پردازنده 6800 کار نکرده ام امیدوارم دوستان دیگر بتوانند کمکتان کنند.