这学期开始学习51单片机,感觉比汇编简单,关键是51的汇编有一个好的ide,练习起来也比较方便,这个系列主要记录51的学习经验。下面是基础指令的练习:
org 0000h
ljmp main
org 0030h
main:
clr c ;cy=0
setb c ;cy=1
mov a,#11110000b
anl a,#11111111b ;与
orl a,#10101010b ;或
xrl a,#11110000b ;异或
clr a ;累加器a清零
cpl a ;将a每一位取反
mov a,#10010001b
rl a ;a的内容循环左移
rr a ;a的内容循环右移
rlc a ;a的内容和进位位一起左移
rrc a ;a的内容和进位位一起右移
swap a ;a的低四位与高四位互换
mov a,#56h
mov r5,#67h
add a,r5 ;加法
da a ;十进制转换
inc a ;加一
dec a ;减一
mov a,#50h
mov b,#0a0h
mul ab ;乘法,pow的ov=1,溢出
mov a,#0fbh
mov b,#12h
div ab ;除法,psw的p=1(奇偶标志位,A中1的个数=奇数)
ljmp main
org 0030h
main:
clr c ;cy=0
setb c ;cy=1
mov a,#11110000b
anl a,#11111111b ;与
orl a,#10101010b ;或
xrl a,#11110000b ;异或
clr a ;累加器a清零
cpl a ;将a每一位取反
mov a,#10010001b
rl a ;a的内容循环左移
rr a ;a的内容循环右移
rlc a ;a的内容和进位位一起左移
rrc a ;a的内容和进位位一起右移
swap a ;a的低四位与高四位互换
mov a,#56h
mov r5,#67h
add a,r5 ;加法
da a ;十进制转换
inc a ;加一
dec a ;减一
mov a,#50h
mov b,#0a0h
mul ab ;乘法,pow的ov=1,溢出
mov a,#0fbh
mov b,#12h
div ab ;除法,psw的p=1(奇偶标志位,A中1的个数=奇数)
end
另外,向大家推荐一个好的ide,名字MCU 8051 IDE,有windows版和linux版,用起来很方便,所有寄存器神马的尽收眼底,看在linux下的截图(点击图片可以放大噢):