标题: 关于汇编asc码转16进制问题 [打印本页]

作者: lyonkon    时间: 2023-3-2 22:47
标题: 关于汇编asc码转16进制问题

这是asc码转成对应的16进制数程序,书上的CJNE A,0AH,ASCTH1 这句我不明白为什么。因为0到16的asc码减去0x30,没有等于0AH的,既然没有等于0ah的,这条指令在这里相当于sjmp。如果是sjmp直接可以省略了。那么这里的判断原理是什么呢。书上的程序如果是0到九计算错误。只是想知道他的思路是什么。




以下是我自己写的,试过能用。



作者: mtdzok    时间: 2023-3-3 09:44
CJNE A,0AH,ASCTH1 表面看没有任何作用,实际是会影响标志位C的,在这里起到比较作用,当A<0AH时C=1,否则C=0 下面的JC语句是根据这个C判断转移的。
作者: lyonkon    时间: 2023-3-19 12:46
mtdzok 发表于 2023-3-3 09:44
CJNE A,0AH,ASCTH1 表面看没有任何作用,实际是会影响标志位C的,在这里起到比较作用,当A

我发现 程序中如果不加clr cy 那么有的时候 acc的值会自动减1。就是说mov a,#0x32     subb a,#0x30    cjne a,#0x0a,asch  当程序执行到cjne这条语句后,acc的值有时候会自动减1 有时候不减,。加上clr cy 就没发现这个问题
作者: mtdzok    时间: 2023-3-19 15:19
lyonkon 发表于 2023-3-19 12:46
我发现 程序中如果不加clr cy 那么有的时候 acc的值会自动减1。就是说mov a,#0x32     subb a,#0x30    ...

减法指令开始之前一定要加CLR C,SUBB 是带标志位C一起减的,很多指令是影响C的。第二个程序就缺乏CLR C结果会出问题。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1