最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

IA32 Assembler

作者:abcabcabc 欄目:嵌入式系統(tǒng)
IA32 Assembler
上傳到ftp://ftp.21ic.com.cn

xx86 是16位x86匯編語言編譯器,生成16/32位二進(jìn)制機(jī)器代碼,運(yùn)行在實(shí)模式下,
語法基本與Netwide Assembler類似。

支持 條件編譯: ifdef ifndef endif
支持 MMX SSE SSE2 SSE3 指令集

不支持 include預(yù)處理指令

命令行格式:xx86 源文件 二進(jìn)制文件

偽指令:
    db    - 定義1個(gè)字節(jié)數(shù)據(jù)    db 1, 2, 1 + 2, 3 + label_01, 10 * 4
    dw    - 定義2個(gè)字節(jié)數(shù)據(jù)    dw 1, 2, 1 + 2, 3 + label_01, 10 * 4
    dd    - 定義4個(gè)字節(jié)數(shù)據(jù)    dd 1, 2, 1 + 2, 3 + label_01, 10 * 4
    resb n    - 保留n個(gè)字節(jié)未初始化數(shù)據(jù)  [ resb 100 ]
    可在一條指令中同時(shí)指定db dw dd 偽指令。例如:    db 100 dw 1000

操作數(shù)大小:
    byte    - 1個(gè)字節(jié)    cmp    byte [ebp+eax*8+1234],100
    word     - 2個(gè)字節(jié)    mov    dx,word [bp+4]
    dword     - 4個(gè)字節(jié)    and    edx,dword [esp+ebx+5678]
    qword    - 8個(gè)字節(jié)    movq    mm0,qword [ebx]
    tword    - 16個(gè)字節(jié)    addps    tword [ebp+8],xmm7

尋址方式:
    SHORT    - 8位        ja SHORT label01
    near    - 16位        jnb near label02
    far    - 32位        jne far  label03

系統(tǒng)指令:
    equ或=    - 定義標(biāo)簽值     [ label_01 equ 1234 ], 標(biāo)簽label_01的值為1234
    org    - 設(shè)定程序起點(diǎn)     [ org 100h ], 設(shè)定程序起點(diǎn)為100h
    times    - 指定重復(fù)生成當(dāng)前指令代碼的次數(shù)    [ times 10 db 'ABCD' ]
    bits16    - 生成16位代碼
    bits32    - 生成32位代碼

常量:
    支持2,8,10,16進(jìn)制整型;32位單精度浮點(diǎn)
        格式:          0x12, 12h        ;十六進(jìn)制
                        12                  ;十進(jìn)制
                        12o                ;八進(jìn)制
                        1010B               ;二進(jìn)制
                        "abc"               ;文本串
                        'abc'               ;文本串
            12345.6789E10        ;32位單精度浮點(diǎn)

EIP:    當(dāng)前EIP值用'$'符號表示。例如:MOV AX,$    ;將EIP低16位存入AX寄存器

操作符:
      ~    取補(bǔ)        高優(yōu)先級
    * / %    乘 除 求余
    +   -     加 減
    & | ^    位與,位或,位異或
    << >>    移位        低優(yōu)先級

有效地址格式:
            [bx]
            [bx+1]
            [bx+si]
            [bx+si+1]
            [eax]
            [eax+1]
            [ebx*4]
            [ebx+8+1234]
            [eax+ebx+1]
            [eax+ebx*2]
            [eax+ebx*2+1]
            [123]
    指定8位偏移值    [byte bx+1]
    指定16位偏移值    [word bx+1]
    指定32位偏移值    [dword ebx+esi*8+1000]
    指定段前綴    [es: bx+si+100]
    指定32位偏移值及段前綴    [dword fs:eax+edi*4]



所有指令的操作數(shù)均按照INTEL(c)IA32指令集參考來定義,某些指令不能指定內(nèi)存操作數(shù)的大小
例如:lds dx,[SrcFH]

Jcc指令默認(rèn)為有符號8位跳轉(zhuǎn)(-128/127),16位,32位跳轉(zhuǎn)要指定near或far尋址方式
    例如:    label01:    mov    ax,dx
                ...
                cmp    [bx],-1
                jne    label01
                ...
                cmp    dx,100
                ja near label01

Jmp指令格式:    jmp      label01
        jmp SHORT label02
        jmp near  label03
        jmp far   label04
        jmp      bx
        jmp      edx
       &nbs
2樓: >>參與討論
enruan
樓主很猛啊
 
3樓: >>參與討論
abcabcabc
也不是啦,可以寫arm 51系列,或者自定義也可以
 
4樓: >>參與討論
csword
分享源碼來娛樂下大眾啦.哈哈
 
5樓: >>參與討論
enruan
是啊
 
6樓: >>參與討論
abcabcabc
還沒有搞到空間
寫得很垃圾拉,給各位見笑了,我過幾天搞個(gè)空間上傳一下。

7樓: >>參與討論
fjlypp
大俠 你搞X86用什么工具啊?
我在抄一塊用am186的控制板
想分析它的程序但不懂怎么拼接用什么工具反匯編
能教教我嗎?

8樓: >>參與討論
abcabcabc
我用x86匯編寫的。



* - 本貼最后修改時(shí)間:2005-1-19 19:53:40 修改者:abcabcabc

9樓: >>參與討論
abcabcabc
上傳了
http://www.golfingworld.net/xx86.txt
http://www.golfingworld.net/xx86.com
http://www.golfingworld.net/xx86.zip

下載地址如上

10樓: >>參與討論
crazyeda
是挺猛,你是做作業(yè)還是公司要求的
 
11樓: >>參與討論
abcabcabc
不是做作業(yè)的,也不是公司要求
 

* - 本貼最后修改時(shí)間:2005-1-19 19:55:14 修改者:abcabcabc

12樓: >>參與討論
su_mj000
如果寫Assembler或Compiler之類的軟件
一般都得使用flex(lex)和bison(yacc)作為工具(都是免費(fèi))。

否則,含各類運(yùn)算的表達(dá)式如何處理,如

     mov ax, 100 + (200 >> 2)



13樓: >>參與討論
abcabcabc
補(bǔ)上了32位IEEE754浮點(diǎn)數(shù)支持,修正了錯(cuò)誤
   mov ax, 100 + (200 >> 2)  這個(gè)支持。

除了浮點(diǎn)數(shù)不能作為操作數(shù)運(yùn)算之外,整型的都可以。
例如 200>>-2 等于 200<<2

14樓: >>參與討論
enruan
沒有源碼嗎?
 
15樓: >>參與討論
abcabcabc
加上mmx sse sse2 sse3指令集
 
16樓: >>參與討論
enruan
加油啊
期待用國產(chǎn)的編譯器和匯編器

對了,你不會是完全自立更生了吧
你不會是用匯編寫的,然后用自己的assembler匯編的吧?
   


17樓: >>參與討論
abcabcabc
是用自己的assembler編譯的
語法結(jié)構(gòu)我用了nasm的格式,開始的時(shí)候用nasm來編譯,后來自己可以編譯自己的源代碼,F(xiàn)在用nasm來編譯也不行了,已經(jīng)out of MEMORY


18樓: >>參與討論
enruan
哈哈,帥哥,你好強(qiáng)啊
 
19樓: >>參與討論
enruan
那你是用匯編寫的嘍?
還是C(不會還有別的吧,哈)寫的然后生成的匯編?

20樓: >>參與討論
enruan
我頂.
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
PC的串口老容易燒壞,有什么好方法保護(hù)啊?
求救,82c54方式2下為什么不能用GATE控制重新計(jì)數(shù)?
USB OTG接口設(shè)計(jì)者&Phillip芯片應(yīng)用高手看過來
使用S3C2410+WINBOND83977擴(kuò)并口和PS/2
求救---89c51和29f040之間的接線圖,以及匯編程序
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號