单片机 题目 取反

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:53:01
上课时候老实说
00H取反不是FFH 那么应该是什么呢
还有
MOV 24H #BCH;
CLR 24H;
的结果是什么
谢谢
接上面
STEB C;
MOV A,24H;
CPL A;
RRC A;
ORL C,24H;
MOV 26H,C;

这个每一步也帮我做下饿
麻烦各位了
谢谢

一楼说的是对的00H取后就是FFH,要说不是那就是前面+0,这是数字写字符的区分,那就要写成0FFH。
MOV 24H,#0BCH
CLR 24H
的结果一楼也是对的。结果是24H=0ACH
是这样的,CLR 24H,是位操作指令 蚂蚁叼骨头 说对了一半,它不是指24H.0
51RAM的位寻址单元为20H-2FH,细分地址是00H-7FH,20H.0=OOH 20H.1=01H......2FH.7=7FH 而24H就是24H.4(24H的第5位因为0也算一位),所以
24H=10111100(BC) CLR 24H 就是将24H.4清零
24H=10101100=0ACH

数据00h取反是0ffh。这没错
mov 24h,#0bch的意思是赋给地址为24h的字节单元数0bch
clr 24h 是把位地址为24h清零
setb c 进位位置一
mov a,24h 累加器a数变为0bch
cpl a 累加器a数取反变为43h
rrc a 累加器a带进位右移a为0a1h,c为1
orl c,24h 位24h与c相或后进位位c的数仍为1
mov 26h,c 进位位c的数赋给位26h,26h为1

#00H取反是#0FFH,
24H是位寻址区啊,CLR 24H 应该清的是24.0Bit 24字节单元中低0位吧 那么他的结果应该是1011 1100

本来24H里就是1011 1100拉 他们好象忘了有个"0"位了
0000 "0"
0001
0010
0011
0100
0101
0110
0111
1000
1OO1
1010 "A"
1011 "B"
1100 "C"
1101
111O
1111 "F"

CPL 00H此时00H是位,取反