📄 ex10-1.sdi
字号:
027D,12 03 17,, call DIVD4
0280,E5 33,, mov A,33h
0282,93,, movc A,@A+DPTR
0283,F5 41,, mov 41h,A
0285,12 03 17,, call DIVD4
0288,E5 33,, mov A,33h
028A,93,, movc A,@A+DPTR
028B,B4 3F 02,, cjne A,#3Fh,NONZERO
028E,74 00,, mov A,#00h
0290,F5 40,NONZERO,NONZERO: mov 40h,A
0292,22,, ret
,,,
0293,7D 01,DELAY_5ms,DELAY_5ms: mov R5,#01h ;设置R5初始计数值
0295,7E 16,DELAY_5ms1,DELAY_5ms1: mov R6,#16h ;设置R6初始计数值
0297,7F 70,DELAY_5ms2,DELAY_5ms2: mov R7,#70h ;设置R7初始计数值
0299,DF FE,DELAY_5ms3,DELAY_5ms3: djnz R7,DELAY_5ms3 ;延时时间为 Time=( ( (R7*2)+2+1 )*R6+2+1 )*R5+1
029B,DE FA,, djnz R6,DELAY_5ms2 ;
029D,DD F6,, djnz R5,DELAY_5ms1 ;
029F,22,, ret
,,,
,,,
02A0,3F,SEGMENT7,SEGMENT7: DB 3Fh ;7段数码管字符0的abcdefg的值,a在最低位,最高位始终保留为0
02A1,06,, DB 06h
02A2,5B,, DB 5Bh
02A3,4F,, DB 4Fh
02A4,66,, DB 66h
02A5,6D,, DB 6Dh
02A6,7D,, DB 7Dh
02A7,07,, DB 07h
02A8,7F,, DB 7Fh
02A9,6F,, DB 6Fh
,,,
02AA,90 FE FF,DISPLAY,DISPLAY: mov DPTR,#0fEffh ;写第一位数码管
02AD,79 40,, mov r1,#40h
02AF,E7,, mov A,@r1
02B0,F0,, movx @DPTR,A
02B1,D3,, setb C
02B2,92 94,, mov P1.4,C
02B4,C3,, clr C
02B5,92 94,, mov P1.4,C
02B7,51 93,, call DELAY_5ms
02B9,D3,, setb C
02BA,92 94,, mov P1.4,C
02BC,09,, inc r1
02BD,E7,, mov A,@r1 ;写第二位数码管
02BE,F0,, movx @DPTR,A
02BF,D3,, setb C
02C0,92 95,, mov P1.5,C
02C2,C3,, clr C
02C3,92 95,, mov P1.5,C
02C5,51 93,, call DELAY_5ms
02C7,D3,, setb C
02C8,92 95,, mov P1.5,C
02CA,09,, inc r1
02CB,E7,, mov A,@r1 ;写第三位数码管
02CC,F0,, movx @DPTR,A
02CD,D3,, setb C
02CE,92 96,, mov P1.6,C
02D0,C3,, clr C
02D1,92 96,, mov P1.6,C
02D3,51 93,, call DELAY_5ms
02D5,D3,, setb C
02D6,92 96,, mov P1.6,C
02D8,09,, inc r1
02D9,E7,, mov A,@r1 ;写第四位数码管
02DA,F0,, movx @DPTR,A
02DB,D3,, setb C
02DC,92 97,, mov P1.7,C
02DE,C3,, clr C
02DF,92 97,, mov P1.7,C
02E1,51 93,, call DELAY_5ms
02E3,D3,, setb C
02E4,92 97,, mov P1.7,C
02E6,22,, ret
,,,
,,,
,,,;双字节二进制无符号数乘法
,,,;被乘数在R2(高位)、R3(低位)中,乘数在R6(高位)、R7(低位)中。
,,,;乘积在R2(高位)、R3、R4、R5(低位)中。
,,,;用到累加器A,B,PSW,R2~R7。
,,,;永远不会产生进位。
,,,;在出口时总是清除C。
,,,;若结果超出2个字节范围则OV=1。
02E7,,MULD2,MULD2:
02E7,EB,, MOV A,R3
02E8,8F F0,, MOV B,R7
02EA,A4,, MUL AB
02EB,AC F0,, MOV R4,B
02ED,FD,, MOV R5,A
02EE,EB,, MOV A,R3
02EF,8E F0,, MOV B,R6
02F1,A4,, MUL AB
02F2,2C,, ADD A,R4
02F3,FC,, MOV R4,A
02F4,E4,, CLR A
02F5,35 F0,, ADDC A,B
02F7,FB,, MOV R3,A
02F8,EA,, MOV A,R2
02F9,8F F0,, MOV B,R7
02FB,A4,, MUL AB
02FC,2C,, ADD A,R4
02FD,FC,, MOV R4,A
02FE,EB,, MOV A,R3
02FF,35 F0,, ADDC A,B
0301,FB,, MOV R3,A
0302,E4,, CLR A
0303,33,, RLC A
0304,CA,, XCH A,R2
0305,8E F0,, MOV B,R6
0307,A4,, MUL AB
0308,2B,, ADD A,R3
0309,FB,, MOV R3,A
030A,EA,, MOV A,R2
030B,35 F0,, ADDC A,B
030D,FA,, MOV R2,A
030E,4B,, ORL A,R3
030F,60 03,, JZ MULD21
0311,D2 D2,, SETB OV
0313,22,, RET
0314,,MULD21,MULD21:
0314,C2 D2,, CLR OV
0316,22,, RET
,,,
,,,
,,,
,,,;四字节无符号数除法
,,,;R0存放被除数,除数,商数的地址。
,,,;从R0开始的连续四个字节为结果的余数,入口时可以为任意,但在出口时发生变化。
,,,;其后的连续4个字节在入口时是被除数,出口时是商数。
,,,;再其后的连续四个字节在入口时是除数,出口时保持不变。
,,,;用到累加器A,B,PSW,R0~R7。
,,,;如果除数为零,则置OV=1标志,否则清零。
,,,;在出口时总是清除C。
0317,,DIVD4,DIVD4:
0317,E8,, MOV A,R0
0318,F5 F0,, MOV B,A
031A,24 08,, ADD A,#08h
031C,F9,, MOV R1,A
031D,74 00,, MOV A,#00h
031F,47,, ORL A,@R1
0320,09,, INC R1
0321,47,, ORL A,@R1
0322,09,, INC R1
0323,47,, ORL A,@R1
0324,09,, INC R1
0325,47,, ORL A,@R1
0326,60 54,, JZ DIVD45
0328,A9 F0,, MOV R1,B
032A,7A 04,, MOV R2,#04h
032C,,DIVD41,DIVD41:
032C,77 00,, MOV @R1,#00h
032E,09,, INC R1
032F,DA FB,, DJNZ R2,DIVD41
0331,7B 20,, MOV R3,#20h
0333,,DIVD42,DIVD42:
0333,7A 08,, MOV R2,#08h
0335,E5 F0,, MOV A,B
0337,F8,, MOV R0,A
0338,24 07,, ADD A,#07h
033A,F9,, MOV R1,A
033B,C3,, CLR C
033C,,DIVD43,DIVD43:
033C,E7,, MOV A,@R1
033D,33,, RLC A
033E,F7,, MOV @R1,A
033F,19,, DEC R1
0340,DA FA,, DJNZ R2,DIVD43
0342,E8,, MOV A,R0
0343,24 03,, ADD A,#03h
0345,F9,, MOV R1,A
0346,E8,, MOV A,R0
0347,24 0B,, ADD A,#0Bh
0349,F8,, MOV R0,A
034A,E7,, MOV A,@R1
034B,96,, SUBB A,@R0
034C,FC,, MOV R4,A
034D,19,, DEC R1
034E,18,, DEC R0
034F,E7,, MOV A,@R1
0350,96,, SUBB A,@R0
0351,FD,, MOV R5,A
0352,19,, DEC R1
0353,18,, DEC R0
0354,E7,, MOV A,@R1
0355,96,, SUBB A,@R0
0356,FE,, MOV R6,A
0357,19,, DEC R1
0358,18,, DEC R0
0359,E7,, MOV A,@R1
035A,96,, SUBB A,@R0
035B,FF,, MOV R7,A
035C,40 16,, JC DIVD44
035E,E5 F0,, MOV A,B
0360,F8,, MOV R0,A
0361,24 03,, ADD A,#03h
0363,F9,, MOV R1,A
0364,EC,, MOV A,R4
0365,F7,, MOV @R1,A
0366,19,, DEC R1
0367,ED,, MOV A,R5
0368,F7,, MOV @R1,A
0369,19,, DEC R1
036A,EE,, MOV A,R6
036B,F7,, MOV @R1,A
036C,19,, DEC R1
036D,EF,, MOV A,R7
036E,F7,, MOV @R1,A
036F,E8,, MOV A,R0
0370,24 07,, ADD A,#07h
0372,F9,, MOV R1,A
0373,07,, INC @R1
0374,,DIVD44,DIVD44:
0374,DB BD,, DJNZ R3,DIVD42
0376,A8 F0,, MOV R0,B
0378,C2 D2,, CLR OV
037A,C3,, CLR C
037B,22,, RET
037C,,DIVD45,DIVD45:
037C,D2 D2,, SETB OV
037E,C3,, CLR C
037F,22,, RET
,,,
000E,,, end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -