|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
問個我不清楚查表指令~有點難度哦!! |
| 作者:zpcom 欄目:新手園地 |
我用的是MCS-51的匯編語言: 我的程序簡單描一下,是個數(shù)碼管循環(huán)顯示程序: ORG 0000H SJMP MAIN MAIN:MOV DPTR,#TABLE;這里是代表什么呢? DISP:MOV R3,#0H LOOP:MOV A,R3 MOVC A,@DPTR+A MOV P0,A INC R3 LCALL DELAY MOV A,R3 CJNE A,#0AH,LOOP SJMP DISP DELAY:MOV R0,#0FFH DL0:MOV RO,#0FFH DL1:NOP DJNZ R1,DL1 DJNZ R0,DL0 RET TABLE:DB 0C0H,0F9H,. .. .. .. .. 寫完了,MOV DPTR,#TABLE這條指令是什么意思?我只知道這是把表頭賦值給 DPTR."#TABLE"我想是個數(shù),但我想問這個數(shù)是多少呢?這個程序中的#TABLE 好象是沒有值的,程序已把#0H賦給A,指令MOVC A,@A+DPRT是查表中的第幾位 呢?? 請各位大蝦多多幫忙!!!請指出我的問題所在!~~!~ |
| 2樓: | >>參與討論 |
| 作者: a12345678 于 2006/4/22 21:13:00 發(fā)布:
RE: MOV DPTR,#TABLE這條指令是是把表頭賦值給DPTR,"#TABLE"是表頭所在位置的第一個字節(jié)的地址,由于程序每次修改后具體位置會改變,實際上也不需要知道確切地址。在調(diào)試中,但不執(zhí)行完這條指令后,察看DPTR的值即可知道。 這個程序中的#TABLE有相對值,程序把DPTR中的值作為一個數(shù)值的起點,然后將A中的值(由R3獲得)作為偏移量。指令MOVC A,@A+DPRT是查#TABLE地址開始的表中的R3中的值作為偏移量所指向的字節(jié)。 |
|
| 3樓: | >>參與討論 |
| 作者: zpcom 于 2006/4/23 22:46:00 發(fā)布:
謝了,~~ 我后去查了資料:"TABLE:DB 0C0H,0F9H"的作用是:(TABLE)=0COH (TABLE+1)=0F9H;這樣也行吧!! |
|
| 4樓: | >>參與討論 |
| 作者: sjl2006 于 2006/4/29 22:32:00 發(fā)布:
準確地說是 TABLE這個標志代表的程序地址里的代碼為0C0H,下一個地址里的代碼為0F9H。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |