1、H-JATG配置---并口选择
目前用的JTAG口是并口,因此需要设置并口为ECP(支持DMA),且JTAG连接时Settings->LPT/USB Selecting应选上LPT。
2、While循环---程序编写技巧
汇编程序中while的方法跟C里面的区别较大
(1)、while只是个标量,可以用其他的任意字符串代替
(2)、循环体需写到外部
; while(x<=y)
; { x *= 2; F?F?
; } X `
; 设x为R0,y为R1 (x、y均为无符号整数) &(
MOV R0,#1 ; 初始化x的值 舑1
MOV R1,#20 ; 初始化y的值
B WHILE_2; 首先要判断条件
WHILE_1 MOV R0,R0,LSL #1 ; 循环体,x *= 2
WHILE_2 CMP R0,R1 ; 判断x≤y?
BLS WHILE_1; 若条件正确,继续循环
WHILE_END NOP
3、MOV 和MOVS的区别
S的作用是更新CPSR中标志位的值,若加则标志位更新,可用做判别条件
; do
; { x--; ?
; } while(x>0);
; 设x为R0 (x为无符号整数)
MOV R0,#5 ; 初始化x的值
DOWHILE_L1 ADD R0,R0,#-1 ; 循环体,x-- €
DOWHILE_L2 MOVS R0,R0 ; R0 <= R0,并影响条件码标志
BNE DOWHILE_L1 ; 若R0不为0(即x不为0),则继续循环
DOWHILE_END NOP
4、CMP和C标志位的关系
CMP r1,r2 ;
BCC main ; r1-r2<0,则需要借位C置位,跳转到main