![]() |
1950773588 發(fā)表于 2021-7-4 16:18 是除法那部分,謝謝 |
zhxiufan 發(fā)表于 2020-12-17 09:40 你好,您分享的一種用匯編寫的計算器,我花了兩天時間把別的地方都看懂了,感覺您太厲害了,就是除法那部分沒看懂您的思路,可以分享一下嗎,或者標(biāo)注一下除法那部分嗎?我隨時期待您的回復(fù),不勝感激!! |
你好,您分享的一種用匯編寫的計算器,我花了兩天時間把別的地方都看懂了,感覺您太厲害了,就是除法那部分沒看懂您的思路,可以分享一下嗎,或者標(biāo)注一下除法那部分嗎?我隨時期待您的解答,不勝感謝!!! |
你好,您分享的一種用匯編寫的計算器,我花了兩天時間把別的地方都看懂了,感覺您太厲害了,就是除法那部分沒看懂您的思路,可以分享一下嗎,或者標(biāo)注一下乘法那部分嗎? |
;加了一些注釋,希望對大家有些幫助。 ORG 0000H LJMP START ORG 0030H START: MOV SP,#60H LCALL INT ;調(diào)用初始化子程序 START1: LCALL CLEAR ;調(diào)用清屏子程序 ;*********************************固定字符顯示 mov column3,#0 mov pagef3,#0 mov codes,#0 ;'數(shù)' lcall writeleft2 mov column3,#0 mov pagef3,#4 mov codes,#2 ;'結(jié)' lcall writeleft2 mov column3,#16 mov pagef3,#4 mov codes,#3 ;'果' lcall writeleft2 mov column3,#16 mov pagef3,#0 mov codes,#1 ;'字' lcall writeleft2 mov column,#32 mov pagef,#0 mov codes,#1 ;'1' lcall writeleft mov column3,#0 mov pagef3,#2 mov codes,#0 ;‘?dāng)?shù)’ lcall writeleft2 mov column,#40 mov pagef,#2 mov codes,#15 ;':' lcall writeleft mov column,#40 mov pagef,#0 mov codes,#15 ;':' lcall writeleft mov column3,#16 mov pagef3,#2 mov codes,#1 ;‘字’ lcall writeleft2 mov column,#32 mov pagef,#2 mov codes,#2 ;'2' lcall writeleft MOV R0,#0 MOV R1,#255 QQQ: MOV @R0,#0 INC R0 DJNZ R1,QQQ ;************************************固定字符顯示結(jié)束,鍵盤掃描開始 dd: mov r0,#0f7h ;掃描碼送R0 mov r1,#0 ;鍵值初始為0 cc: mov a,r0 mov p1,a ;掃描碼送P1 mov a,p1 ;讀結(jié)果碼 mov r2,a ;結(jié)果碼送R2 setb c mov r3,#4 ;一次共4個掃描碼 bb: rlc a ;帶進(jìn)位循環(huán)左移,最高位移入C jnc aa ;如果鍵位在此轉(zhuǎn)aa ee: inc r1 ;鍵值加1 djnz r3,bb ;一行(列)有4個列(行) mov a,r0 setb c rrc a ;修改掃描碼 mov r0,a jc cc ;如果未完成4行(列)掃描轉(zhuǎn)cc ljmp dd ;否則轉(zhuǎn)dd(無鍵按下) aa: lcall mm ;延時約4毫秒 mov a,p1 xrl a,r2 jnz ee ;如果是抖動造成轉(zhuǎn)ee ff: mov a,p1 xrl a,r2 jz ff ;等待按鍵抬起 sjmp cal_start ;---------------------------------------- KAOO: LJMP KAO BBB2: LJMP BB2 ;接收數(shù)字2 ;---------------------------------------- cal_start: MOV A,51H ;51H:1=加,2=減,3=乘,4=除 CJNE A,#1,BBB2 ;加法 MOV A,R1 ;鍵值 CJNE A,#14,KAOO ;14為‘=’ ;加法運算開始,數(shù)字組成:49H48H46H45H44H42H41H40H,結(jié)果相同,最高位在CEH MOV 47H,R1 LCALL A31 ;顯示運算符 MOV A,40H ADD A,60H MOV B,#10 DIV AB MOV 40H,B ADD A,41H ADD A,71H MOV B,#10 DIV AB MOV 41H,B ADD A,42H ADD A,72H MOV B,#10 DIV AB MOV 42H,B ADD A,44H ADD A,74H MOV B,#10 DIV AB MOV 44H,B ADD A,45H ADD A,75H MOV B,#10 DIV AB MOV 45H,B ADD A,46H ADD A,76H MOV B,#10 DIV AB MOV 46H,B ADD A,48H ADD A,78H MOV B,#10 DIV AB MOV 48H,B ADD A,49H ADD A,79H MOV B,#10 DIV AB MOV 49H,B MOV 0CEH,A ;最高位 CJNE A,#0,CC0 MOV A,49H CJNE A,#0,CC1 MOV A,48H CJNE A,#0,CC2 MOV A,46H CJNE A,#0,CC3 MOV A,45H CJNE A,#0,CC4 MOV A,44H CJNE A,#0,CC5 MOV A,42H CJNE A,#0,CC6 MOV A,41H CJNE A,#0,CC7 MOV A,40H CJNE A,#0,CC8 ;顯示結(jié)果 CC0:LCALL A08 CC1:LCALL A07 CC2:LCALL A06 CC3:LCALL A05 CC4:LCALL A04 CC5:LCALL A03 CC6:LCALL A02 CC7:LCALL A01 CC8:LCALL A00 LJMP DD KAO: CJNE A,#15,KAO1 ;15為ESC鍵 LJMP START1 KAO1: MOV A,50H CJNE A,#0,A1A1 MOV 60H,R1 LCALL A8 INC 50H ljmp dd A1A1: CJNE A,#1,A1A2 MOV 71H,60H MOV 60H,R1 LCALL A8 LCALL A9 INC 50H LJMP DD A1A2: CJNE A,#2,A1A3 MOV 72H,71H MOV 71H,60H MOV 60H,R1 LCALL A8 LCALL A9 LCALL A10 INC 50H LJMP DD A1A3: CJNE A,#3,A1A5 MOV 74H,72H MOV 72H,71H MOV 71H,60H MOV 60H,R1 LCALL A8 LCALL A9 LCALL A10 LCALL A11 INC 50H LJMP DD A1A5: CJNE A,#4,A1A6 MOV 75H,74H MOV 74H,72H MOV 72H,71H MOV 71H,60H MOV 60H,R1 LCALL A8 LCALL A9 LCALL A10 LCALL A11 LCALL A12 INC 50H LJMP DD A1A6: CJNE A,#5,A1A7 MOV 76H,75H MOV 75H,74H MOV 74H,72H MOV 72H,71H MOV 71H,60H MOV 60H,R1 LCALL A8 LCALL A9 LCALL A10 LCALL A11 LCALL A12 LCALL A13 INC 50H LJMP DD A1A7: CJNE A,#6,A1A9 MOV 78H,76H MOV 76H,75H MOV 75H,74H MOV 74H,72H MOV 72H,71H MOV 71H,60H MOV 60H,R1 LCALL A8 LCALL A9 LCALL A10 LCALL A11 LCALL A12 LCALL A13 LCALL A14 INC 50H LJMP DD A1A9: CJNE A,#7,A1A10 MOV 79H,78H MOV 78H,76H MOV 76H,75H MOV 75H,74H MOV 74H,72H MOV 72H,71H MOV 71H,60H MOV 60H,R1 LCALL A8 LCALL A9 LCALL A10 LCALL A11 LCALL A12 LCALL A13 LCALL A14 LCALL A15 INC 50H A1A10: LJMP DD BBB3: LJMP BB33 KAOO2: LJMP KAO2 BB2: CJNE A,#2,BBB3 ;減法運算 .......... |
代碼可用,但注釋太少,函數(shù)名稱也沒有相應(yīng)的含義,無法弄懂呀。 |
Powered by 單片機(jī)教程網(wǎng)