?? main.lst
字號:
A51 MACRO ASSEMBLER MAIN 06/23/2006 11:55:35 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN main.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE main.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;*************************************************************************
2 ; main.c
3 ; LM75A數(shù)字溫度計
4 ;*************************************************************************
5
6
7 ;*************************************************************************
8 ;復位和中斷向量入口
9 ;*************************************************************************
10 ;復位入口
0000 11 ORG 0x0000
0000 0202CB 12 LJMP PreMain
13 ;T1中斷入口:
001B 14 ORG 0x001B
001B 02004A 15 LJMP T1INTSVC
16
17
18 ;*************************************************************************
19 ;定義全局BIT、IRAM變量的分配起始符號
20 ;*************************************************************************
0010 21 GLOBAL_BIT SET 0x22.0
0030 22 GLOBAL_IRAM SET 0x30
23
24
25 ;*************************************************************************
26 ;文件包含
27 ;*************************************************************************
28 ;$include (Branch.INC) ;分支判斷
+1 29 ;*************************************************************************
+1 30 ;實用的8051單片機分支判斷程序
+1 31 ;直接對應于C語言中的條件判斷語句(相反條件)
+1 32 ;適用于Keil C51編譯器
+1 33 ;*************************************************************************
+1 34
+1 35
+1 36 ;*************************************************************************
+1 37 ;宏定義:BEQ_B(Branch if Equal)
+1 38 ;功能:兩個位變量比較,如果相等則跳轉(zhuǎn)
+1 39 ;參數(shù):
+1 40 ; b1,b2:要比較的兩個位變量(或者位變量與位常量比較)
+1 41 ; Label:跳轉(zhuǎn)目標
+1 42 ;*************************************************************************
+1 43 BEQ_B MACRO b1, b2, Label
+1 44 LOCAL next
+1 45 MOV C, b2
+1 46 JNB b1, next
+1 47 CPL C
+1 48 next:
+1 49 JNC Label
+1 50 ENDM
+1 51
+1 52
+1 53 ;*************************************************************************
+1 54 ;宏定義:BNE_B(Branch if Not Equal)
+1 55 ;功能:兩個位變量比較,如果不相等則跳轉(zhuǎn)
+1 56 ;參數(shù):
+1 57 ; b1,b2:要比較的兩個位變量(或者位變量與位常量比較)
+1 58 ; Label:跳轉(zhuǎn)目標
A51 MACRO ASSEMBLER MAIN 06/23/2006 11:55:35 PAGE 2
+1 59 ;*************************************************************************
+1 60 BNE_B MACRO b1, b2, Label
+1 61 LOCAL next
+1 62 MOV C, b2
+1 63 JNB b1, next
+1 64 CPL C
+1 65 next:
+1 66 JC Label
+1 67 ENDM
+1 68
+1 69
+1 70 ;*************************************************************************
+1 71 ;宏定義:BEQ(Branch if Equal)
+1 72 ;功能:單字節(jié)數(shù)比較,如果相等則跳轉(zhuǎn)
+1 73 ;參數(shù):
+1 74 ; x,y:要比較的兩個數(shù)
+1 75 ; Label:跳轉(zhuǎn)目標
+1 76 ;*************************************************************************
+1 77 BEQ MACRO x, y, Label
+1 78 MOV A, x
+1 79 XRL A, y
+1 80 JZ Label
+1 81 ENDM
+1 82
+1 83
+1 84 ;*************************************************************************
+1 85 ;宏定義:BNE(Branch if Not Equal)
+1 86 ;功能:單字節(jié)數(shù)比較,如果不相等則跳轉(zhuǎn)
+1 87 ;參數(shù):
+1 88 ; x,y:要比較的兩個數(shù)
+1 89 ; Label:跳轉(zhuǎn)目標
+1 90 ;*************************************************************************
+1 91 BNE MACRO x, y, Label
+1 92 MOV A, x
+1 93 CJNE A, y, Label
+1 94 ENDM
+1 95
+1 96
+1 97 ;*************************************************************************
+1 98 ;宏定義:BHS(Branch if High or Same)
+1 99 ;功能:單字節(jié)無符號數(shù)比較,如果大于或等于則跳轉(zhuǎn)
+1 100 ;參數(shù):
+1 101 ; x,y:要比較的兩個數(shù)
+1 102 ; Label:跳轉(zhuǎn)目標
+1 103 ;*************************************************************************
+1 104 BHS MACRO x, y, Label
+1 105 MOV A, x
+1 106 CLR C
+1 107 SUBB A, y
+1 108 JNC Label
+1 109 ENDM
+1 110
+1 111
+1 112 ;*************************************************************************
+1 113 ;宏定義:BHI(Branch if High)
+1 114 ;功能:單字節(jié)無符號數(shù)比較,如果大于則跳轉(zhuǎn)
+1 115 ;參數(shù):
+1 116 ; x,y:要比較的兩個數(shù)
+1 117 ; Label:跳轉(zhuǎn)目標
+1 118 ;*************************************************************************
+1 119 BHI MACRO x, y, Label
+1 120 MOV A, x
+1 121 SETB C
+1 122 SUBB A, y
+1 123 JNC Label
+1 124 ENDM
A51 MACRO ASSEMBLER MAIN 06/23/2006 11:55:35 PAGE 3
+1 125
+1 126
+1 127 ;*************************************************************************
+1 128 ;宏定義:BLS(Branch if Low or Same)
+1 129 ;功能:單字節(jié)無符號數(shù)比較,如果小于或等于則跳轉(zhuǎn)
+1 130 ;參數(shù):
+1 131 ; x,y:要比較的兩個數(shù)
+1 132 ; Label:跳轉(zhuǎn)目標
+1 133 ;*************************************************************************
+1 134 BLS MACRO x, y, Label
+1 135 MOV A, x
+1 136 SETB C
+1 137 SUBB A, y
+1 138 JC Label
+1 139 ENDM
+1 140
+1 141
+1 142 ;*************************************************************************
+1 143 ;宏定義:BLO(Branch if Low)
+1 144 ;功能:單字節(jié)無符號數(shù)比較,如果小于則跳轉(zhuǎn)
+1 145 ;參數(shù):
+1 146 ; x,y:要比較的兩個數(shù)
+1 147 ; Label:跳轉(zhuǎn)目標
+1 148 ;*************************************************************************
+1 149 BLO MACRO x, y, Label
+1 150 MOV A, x
+1 151 CLR C
+1 152 SUBB A, y
+1 153 JC Label
+1 154 ENDM
+1 155
+1 156
+1 157 ;*************************************************************************
+1 158 ;宏定義:JZ_W
+1 159 ;功能:雙字節(jié)數(shù)為0跳轉(zhuǎn)
+1 160 ;參數(shù):
+1 161 ; (xh,xl):要判斷的數(shù)
+1 162 ; Label:跳轉(zhuǎn)目標
+1 163 ;*************************************************************************
+1 164 JZ_W MACRO xh,xl, Label
+1 165 MOV A, xh
+1 166 ORL A, xl
+1 167 JZ Label
+1 168 ENDM
+1 169
+1 170
+1 171 ;*************************************************************************
+1 172 ;宏定義:JNZ_W
+1 173 ;功能:雙字節(jié)數(shù)不為0跳轉(zhuǎn)
+1 174 ;參數(shù):
+1 175 ; (xh,xl):要判斷的數(shù)
+1 176 ; Label:跳轉(zhuǎn)目標
+1 177 ;*************************************************************************
+1 178 JNZ_W MACRO xh,xl, Label
+1 179 MOV A, xh
+1 180 ORL A, xl
+1 181 JNZ Label
+1 182 ENDM
+1 183
+1 184
+1 185 ;*************************************************************************
+1 186 ;宏定義:DJNZ_W
+1 187 ;功能:雙字節(jié)數(shù)自減1,結(jié)果不為0跳轉(zhuǎn)
+1 188 ;參數(shù):
+1 189 ; (xh,xl):要操作的數(shù)
+1 190 ; Label:跳轉(zhuǎn)目標
A51 MACRO ASSEMBLER MAIN 06/23/2006 11:55:35 PAGE 4
+1 191 ;*************************************************************************
+1 192 DJNZ_W MACRO xh,xl, Label
+1 193 LOCAL next
+1 194 MOV A, xl
+1 195 JNZ next
+1 196 DEC xh
+1 197 next:
+1 198 DEC xl
+1 199 MOV A, xh
+1 200 ORL A, xl
+1 201 JNZ Label
+1 202 ENDM
+1 203
+1 204
+1 205 ;*************************************************************************
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -