初级会员

- 积分
- 87
- 金钱
- 87
- 注册时间
- 2017-6-23
- 在线时间
- 13 小时
|
发表于 2017-8-7 18:57:54
|
显示全部楼层
学习的动力就是移植NES,但下面的汇编要更换自己开发板的接线方法,完全找不着北,虽然作者已经写了很注释,楼主能帮忙看看假设我要把FC的三个手柄信号线改到PA9,PA10, PA11该怎么做
joy0_W ;4016 手柄1+选通
;----------------------------------------------------------------------------
tst r0,#1
orr lr,#0x01 ;lr最低位置1防止进入arm状态
bxne lr
ldr r0,=0x40011408 ; 端口输入数据寄存器(GPIOD_IDR)0x40011408 按键端口
ldr r0,[r0] ; PD9 11 12 13 14 15设置成的输入 按下为0
; key 6 1 2 3 4 5
; ((右 <<7)|(左 <<6)|(下 <<5)|(上 <<4)|Start<<3)|Select<<2)|(B <<1)| A )
; 5 3 1 2 4 按键编号
lsr r0,r0,#8 ;>>8 只要高8位
rsb r0,r0,#0xff ; R0 = #0xff-R0 反向减法? 取反 nes需要按下为1
; 76543210
; 54321 6 按键编号
; 11111010 8位数据
and r2,r0,#0x80 ;按键5 在对应位
and r1,r0,#0x20 ;按键3
orr r2,r1,lsl#1 ; <<1
and r1,r0,#0x8 ;按键1
orr r2,r1 ;按键1 在对应位
and r1,r0,#0x10 ;按键2
orr r2,r1,lsr#2 ; >>2
and r1,r0,#0x40 ;按键4
orr r2,r1,lsr#6 ; >>6 r2是键值
orr r2,r2,#0x100000 ;20位表示控制器在位
str r2,joy0serial
; orr lr,#0x01 ;lr最低位置1防止进入arm状态
bx lr |
|