![]() |
發(fā)布時間: 2022-11-15 13:37
正文摘要:因為仿真計算結(jié)果不正確,我估計下可能是位尋址區(qū)賦值方式的問題。MOV 20.0,C 編譯不能通過,MOV 20H,C可以通過,但是計算結(jié)果不正確,可是驗算是正確的。 請大家指導(dǎo)一下,下面是單片機(jī)匯編語言程序 |
從20H-2FH,一共是16個字節(jié),有128位。標(biāo)準(zhǔn)51系統(tǒng)給這128個位進(jìn)行了編號,并特別給出了指令: 20H.0編號為00H, 20H.1編號為01H,...... 21H.0編號為08H, 21H.1編號為09H,...... ...... 2FH.0編號為78H, 2FH.7編號為7FH,...... 編號80-8FH留給特殊寄存器用了。如:P0.4編號為84H MOV 20H, C 這里的20H是編號,按順序指的是:24H.0位。 C是PSW的CY位,它也有編號:D7H。PSW的地址是D0H,在D0H.7是C。 這些手冊上都有,要認(rèn)真讀手冊,讀通、讀透,一遍、兩遍、三遍,你對單片機(jī)就精通了。 否則,算不得精通,也就談不上高手。 |
新鄉(xiāng)家電維修 發(fā)表于 2022-11-16 12:23 從他寫的匯編來看,他沒搞亂位與字節(jié)指令,只是搞亂了位地址和字節(jié)地址。 |
你搞亂了位與字節(jié)的指令, MOV C,20H;是位操作,就像是對應(yīng)一個IO口, MOV A,20H是字節(jié)操作,就像是對應(yīng)于一組IO口(8個IO口) |
MOV 20.0, C 是錯的。 正確寫法是: MOV 20H.0, C 但, MOV 20H.0, C 不等于: MOV 20H, C MOV 20H.0, C 等于: MOV 00H C 同樣,MOV 20H,C 等于:MOV 24H.0,C |
ADD A,20H 這是對地址20H操作 MOV C,20H 這里的20H是24H.0的別名。 都不是一個內(nèi)存地址,你都加了個寂。 |
Powered by 單片機(jī)教程網(wǎng)