切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 5519阅读
  • 10回复

[80年代]sharp pc-1500 的汇编语言(LH5801 cpu),希望有人喜欢! [复制链接]

上一主题 下一主题
离线huaweiwx
 

发帖
1372
M币
2167
专家
65
粉丝
297
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2015-01-29
序:本贴按理不该放在博物馆,但pc-1500早就在博物馆了,还是决定放在这里。


本贴对谁有用?
      估计天朝也没几个要看这篇文章,也许真的没人需要下述研究成果。那就算作为一个档案材料归档吧,要是后人研究pc-1500的应用开发历史,也许有点用。


sharp pc-1500 是什么:
这是个上个世纪80年代初引入中国,并获得成功的在掌上计算机,全球拥有量很大,至今仍有人在用有人在玩,还能买到(当然是旧的或库存的)。
该计算器的cpu为sharp公司自行开发,8位CMS LH5801,由于sharp公开了LH5801的指令格式,才引来众多的研究开发者(80年代的教授,要是写一个关于pc-1500方面的应用论文,是很时髦的,让人觉得有水平);也衍生了许多附加功能(尤其是在测绘领域);


关于汇编语言:
      sharp公司从未公开过任何开发工具,哪怕是基本的汇编工具。
     至今可用的工具也是较为全的工具是玩家 C.Gottheimer编制 LHtools(www.pc1500.com可下载),可以汇编及反汇编LH5801代码;该网站至今仍在维护,我没法将本文投到该网站,应为英文不好,如有热心者请代劳。


CPU:
LH5801    有一个8位累加器: A   ,5个16位寄存器  X    Y   U      P    S,其中 X Y U可对其高8位和低8位分别操作,P为16位程序指针,S为16位栈指针;基本和 8080/8085类似:
intel8085  有一个8位累加器: A   ,5个16位寄存器  BC DE  HL   P   S,同样 BC DE HL 可独立操作,P为16位程序指针,S为16位栈指针;  
Z80         是个增强的8080,增加了两个16位变址寄存器 IX  IY;                          


真因为没有官方的工具,所以汇编语言的助记方式不同:
我们可以发现,在 www.pc1500.com 网站上用的汇编语言,其助记码和sharp公司手册上推荐的竟然不同!也没有参考8080系列的方式,而采用了类似Z80的助记码,我们看到的源码如:

                PUSH HL
        LDI    (DE)
初看以为就是Z80,难怪许多网上介绍 pc-1500时说LH5801是个Z80兼容机,可能是受了上述助记码的误导,其实根本不是,上述汇编指令生成的也根本不是Z80代码。
我对比了LHTOOLS汇编产生的机器代码,发现的对应关系如下:
               XH = B
               XL = C
              YH  = D
              YL  =E
              UH  = H
              UL  = L

他们是将 pc1500 汇编语言:
      ADC  UH
   写成 : ADC A,H

现在,如果我们将  ADC  UH 理解成标准普通话,那么可以说 ADC  A,H  就是方言,表达的是一会事;但我们初看一眼就傻眼了!
查阅天朝基本用“普通话”来写LH5801汇编语言,而 www.pc1500.com 都是用方言。我猜测,当时www.pc1500.com那些研究LH5801的都是研究过Z80的,用这样的助记码是为了方便将Z80代码移植到pc1500上。

资料本来少得可怜,还得掌握两种不同的表示法,想了解玩玩的,显然很不方便,因此在这里我整理了一个方言对应官方普通话的对照表:
【MNEMO1 为类 Z80(方言),MNEMO2 为类 sharp推荐(官方),方便玩PC-1500的朋友。】
MNEMO1MNEMO2

ADC A,#(BC)
ADC #(X)
ADC A,#(DE)ADC #(Y)
ADC A,#(HL)ADC #(U)
ADC A,#(pp)ADC #(pp)
ADC A,(BC)ADC (X)
ADC A,(DE)ADC (Y)
ADC A,(HL)ADC (U)
ADC A,(pp)ADC (pp)
ADC A,BADC XH
ADC A,CADC XL
ADC A,DADC YH
ADC A,EADC YL
ADC A,HADC A,UH
ADC A,LADC UL
ADC A,nADI A,n
ADCD A,#(BC)DCA #(X)
ADCD A,#(DE)DCA #(Y)
ADCD A,#(HL)DCA #(U)
ADCD A,(BC)DCA (X)
ADCD A,(DE)DCA (Y)
ADCD A,(HL)DCA (U)
ADD #(BC),nADI #(X),n
ADD #(pp),nADI #(pp),n
ADD (BC),nADI (X),n
ADD (DE),fADI (Y),n
ADD (HL),nADI (U),n
ADD (pp),nADI (pp),n
ADD BC,AADR X
ADD DE,AADR Y
ADD HL,AADR U
AM0AM0
AM1AM1
AND #(BC),nANI #(X),n
AND #(DE),nANI #(Y),n
AND #(DE),nADI #(Y),n
AND #(HL),nANI #(U),n
AND #(HL),nADI #(U),n
AND #(pp),nANI #(pp),n
AND (BC),nANI (X),n
AND (DE),nANI (Y),n
AND (HL),nANI (U),n
AND (pp),nANI (pp),n
AND A,#(BC)AND #(X)
AND A,#(DE)AND #(Y)
AND A,#(HL)AND #(U)
AND A,#(pp)AND #(pp)
AND A,(BC)AND (X)
AND A,(DE)AND (Y)
AND A,(HL)AND (U)
AND A,(pp)AND (pp)
AND A,nANI A,n
ATPATP
CALL ppSJP pp
CDVCDV
CP A,#(BC)CPA #(X)
CP A,#(DE)CPA #(Y)
CP A,#(HL)CPA #(U)
CP A,(BC)CPA (X)
CP A,(DE)CPA (Y)
CP A,(HL)CPA (U)
CP A,(pp)CPA (pp)
CP A,BCPA XH
CP A,CCPA XL
CP A,DCPA YH
CP A,ECPA YL
CP A,HCPA UH
CP A,LCPA UL
CP A,nCPI A,n
CP B,nCPI XH
CP C,nCPI XL,n
CP D,nCPI YH,n
CP E,nCPI YL,n
CP H,nCPI UH,n
CP L,nCPI UL,n
CPI A,(BC)CIN
DEC ADEC A
DEC BDEC XH
DEC BCDEC X
DEC CDEC XL
DEC DDEC YH
DEC DEDEC Y
DEC EDEC YL
DEC HDEC UH
DEC HLDEC U
DEC LDEC UL
DIRIE
DJL -eLOP UL,-e
DRL A,#(BC)DRL #(X)
DRL A,(BC)DRL (BC)
DRR A,#(BC)DRR #(X)
DRR A,(BC)DRR (X)
EISIE
HALTHLT
INC AINC A
INC BINC XH
INC BCINC X
INC CINC XL
INC DINC YH
INC DEINC Y
INC EINC YL
INC HINC UH
INC HLINC U
INC LINC UL
ITAITA
JR +eBCH +e
JR C,+eBCS +e
JR C,-eBCS -e
JR -eBCH -e
JR H,+eBHR +e
JR H,-eBHR -e
JR NC,+eBCR +e
JR NC,-eBCR -e
JR NH,+eBHR +e
JR NH,-eBHR -e
JR NV,+eBVR +e
JR NV,-eBVR -e
JR NZ,+eBZR +e
JR NZ,-eBZR -e
JR V,+eBVS +e
JR V,-eBVS -e
JR Z,+eBZS +e
JR Z,-eBZS -e
LA A,#(HL)LDA #(U)
LD #(BC),ASTA #(X)
LD #(DE),ASTA #(Y)
LD #(HL),ASTA #(U)
LD #(pp),ASTA #(pp)
LD (BC),ASTA (X)
LD (DE),ASTA (Y)
LD (HL),ASTA (U)
LD (pp),ASTA (pp)
LD A,#(BC)LDA #(X)
LD A,#(DE)LDA #(Y)
LD A,#(pp)LDA #(pp)
LD A,(BC)LDA (X)
LD A,(DE)LDA (Y)
LD A,(HL)LDA (U)
LD A,(pp)LDA (nn)
LD A,BLDA XH
LD A,CLDA XL
LD A,DLDA YH
LD A,ELDA YL
LD A,HLDA UH
LD A,LLDA UL
LD A,nLDI A,n
LD A,TTTA
LD B,ASTA XH
LD B,nLDI XH,n
LD BC,BCLDX X
LD BC,BCSTX X
LD BC,DELDX Y
LD BC,HLLDX U
LD BC,PCLDX P
LD BC,SPLDX S
LD C,ASTA XL
LD C,nLDI XL,n
LD D,ASTA YH
LD D,nLDI YH,n
LD DE,BCSTX Y
LD E,ASTA YL
LD E,nLDI YL,n
LD H,ASTA UH
LD H,nLDI UH,n
LD HL,BCSTX U
LD L,ASTA UL
LD L,nLDI UL,n
LD PC,BCSTX P
LD PC,ppJMP nn
LD SP,BCSTX S
LD SP,ppLDI S,(*)
LD T,AATT
LDD (BC),ASDE X
LDD (DE),ASDE Y
LDD (HL),ASDE U
LDD A,(BC)LDE X
LDD A,(DE)LDE Y
LDD A,(HL)LDE U
LDI (DE),(BC)TIN
LDI (DE),ASIN (Y)
LDI (HL),ASIN (U)
LDI A,(BC)LIN X
LDI A,(DE)LIN Y
LDI A,(HL)LIN U
LDI(BC),ASIN (X)
NEXAEX
NOPNOP
OFFOFF
OR #(BC),nORI #(X),n
OR #(DE),nORI #(Y),n
OR #(HL),nORI #(U),n
OR #(pp),nOR #(pp),n
OR (BC),nORI (X),n
OR (DE),nORI (Y),n
OR (HL),nORI (U),n
OR (pp),nORI (pp),n
OR A,#(BC)ORA #(X)
OR A,#(DE)ORA #(Y)
OR A,#(HL)ORA #(U)
OR A,#(pp)CPA #(pp)
OR A,#(pp)ORA #(pp)
OR A,(BC)ORA (X)
OR A,(DE)ORA (Y)
OR A,(HL)ORA (U)
OR A,(pp)ORA (pp)
OR A,nORI A,n
POP APOP A
POP BCPOP X
POP DEPOP Y
POP HLPOP U
PUSH APSH A
PUSH BCPSH X
PUSH DEPSH Y
PUSH HLPSH U
RCFREC
RDPRDP
RETRTN
RET I RTI
RLAROL
RPURPU
RPVRPV
RRAROR
RVF(??)RVF(??)
SBC A,#(BC)SBC #(X)
SBC A,#(DE)SBC #(Y)
SBC A,#(HL)SBC #(U)
SBC A,#(pp)SBC #(*)
SBC A,(BC)SBC (X)
SBC A,(DE)SBC (Y)
SBC A,(HL)SBC (U)
SBC A,(pp)SBC (pp)
SBC A,BSBC XH
SBC A,CSBC XL
SBC A,DSBC YH
SBC A,ESBC YL
SBC A,HSBC UH
SBC A,LSBC UL
SBC A,nSBI n
SBCD A,#(BC)DCS #(X)
SBCD A,#(DE)DCS #(Y)
SBCD A,#(HL)DCS #(U)
SBCD A,(BC)DCS (X)
SBCD A,(DE)DCS (Y)
SBCD A,(HL)DCS (U)
SBR C,nVCS n
SBR C0VEJ C0
SBR C2,n,nVEJ C2,n,n
SBR C4,n,nVEJ C4,n,n
SBR C6VEJ C6
SBR C8,+eVEJ C8,+e
SBR CA,nVEJ CA,n
SBR CC,nVEJ CC,n
SBR CEVEJ CE
SBR D0,n,nVEJ D0,n,n
SBR D2VEJ D2
SBR D4,nVEJ D4,n
SBR D6,nVEJ D6,n
SBR D8VEJ D8,n
SBR DAVEJ DA
SBR DCVEJ DC
SBR DE,+eVEJ DE,+e
SBR E0VEJ E0
SBR E2VEJ E2
SBR E4VEJ E4
SBR E6VEJ E6
SBR E8VEJ E8
SBR EAVEJ EA
SBR ECVEJ EC
SBR EEVEJ EE
SBR F0VEJ F0
SBR F2VEJ F2
SBR F4,ppVEJ F4,pp
SBR F6,ppVEJ F6,pp
SBR F8VEJ F8
SBR FAVEJ FA
SBR FCVEJ FC
SBR FEVEJ FE
SBR H,nVHS n
SBR nVMJ n
SBR NC,nVCR n
SBR NH,nVHR n
SBR NZ,nVZR n
SBR V,nVVS n
SBR Z,nVZS n
SCFSEC
SDPSDP
SLASHL
SPUSPU
SPVSPV
SRLSHR
TEST #(BC),nBII #(X),n
TEST #(DE),nBII #(Y),n
TEST #(HL),nBII #(U),n
TEST #(pp),nBII #(pp),n
TEST (BC),nBII (X),n
TEST (DE),nBII (Y),n
TEST (HL),nBII (U),n
TEST (pp),nBII (pp),n
TEST A,#(BC)BIT #(X)
TEST A,#(DE)BIT #(Y)
TEST A,#(HL)BIT #(U)
TEST A,#(pp)BIT #(pp)
TEST A,(BC)BIT (X)
TEST A,(DE)BIT (Y)
TEST A,(HL)BIT (U)
TEST A,(pp)BIT (pp)
TEST A,nBII A,n
XOR A,#(BC)EOR #(X)
XOR A,#(DE)EOR #(Y)
XOR A,#(HL)EOR #(U)
XOR A,#(pp)EOR #(pp)
XOR A,(BC)EOR (X)
XOR A,(DE)EOR (Y)
XOR A,(HL)EOR (U)
XOR A,(pp)EOR (pp)
XOR A,nEAI n


许多帖子在最后会说:希望你喜欢!  
在这里,我只想说:希望有人喜欢!
看过的,请留下足迹!
本帖最近打赏记录:共11条打赏M币+36
12
关键词: SHARP夏普汇编
离线8139

发帖
15662
M币
63862
专家
179
粉丝
33184
只看该作者 1楼 发表于: 2015-01-29
请登录后查看
离线200birds

发帖
11518
M币
2038
专家
94
粉丝
500
只看该作者 2楼 发表于: 2015-01-29
请登录后查看
离线emmod

发帖
2349
M币
17
专家
4
粉丝
57
只看该作者 3楼 发表于: 2015-01-29
请登录后查看
离线铁皮屋

发帖
5966
M币
664
专家
6
粉丝
85
只看该作者 4楼 发表于: 2015-01-29
请登录后查看
离线hongo

发帖
53039
M币
149632
专家
275
粉丝
15184
只看该作者 5楼 发表于: 2015-01-29
请登录后查看
本帖最近打赏记录:共1条打赏M币+3
离线samhrc

发帖
6788
M币
17560
专家
47
粉丝
152
只看该作者 6楼 发表于: 2015-01-30
请登录后查看
离线huaweiwx

发帖
1372
M币
2167
专家
65
粉丝
297
只看该作者 7楼 发表于: 2015-01-30
请登录后查看
[ 此帖被huaweiwx在2015-01-30 14:50重新编辑 ]
离线佰电科技

发帖
661
M币
1172
专家
31
粉丝
47
只看该作者 8楼 发表于: 2016-04-19
请登录后查看
离线老炮

发帖
274
M币
559
专家
1
粉丝
9
只看该作者 9楼 发表于: 2016-04-19
请登录后查看
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个