📄 main.lst
字号:
+1 206 ;宏定义:BEQ_W(Branch if Equal)
+1 207 ;功能:双字节数比较,如果相等则跳转
+1 208 ;参数:
+1 209 ; (xh,xl),(yh,yl):要比较的两个数
+1 210 ; Label:跳转目标
+1 211 ;*************************************************************************
+1 212 BEQ_W MACRO xh,xl, yh,yl, Label
+1 213 LOCAL next
+1 214 MOV A, xl
+1 215 XRL A, yl
+1 216 JNZ next
+1 217 MOV A, xh
+1 218 XRL A, yh
+1 219 JZ Label
+1 220 next:
+1 221 ENDM
+1 222
+1 223
+1 224 ;*************************************************************************
+1 225 ;宏定义:BNE_W(Branch if Not Equal)
+1 226 ;功能:双字节数比较,如果不相等则跳转
+1 227 ;参数:
+1 228 ; (xh,xl),(yh,yl):要比较的两个数
+1 229 ; Label:跳转目标
+1 230 ;*************************************************************************
+1 231 BNE_W MACRO xh,xl, yh,yl, Label
+1 232 MOV A, xl
+1 233 CJNE A, yl, Label
+1 234 MOV A, xh
+1 235 CJNE A, yh, Label
+1 236 ENDM
+1 237
+1 238
+1 239 ;*************************************************************************
+1 240 ;宏定义:BHS_W(Branch if High or Same)
+1 241 ;功能:双字节无符号数比较,如果大于或等于则跳转
+1 242 ;参数:
+1 243 ; (xh,xl),(yh,yl):要比较的两个数
+1 244 ; Label:跳转目标
+1 245 ;*************************************************************************
+1 246 BHS_W MACRO xh,xl, yh,yl, Label
+1 247 CLR C
+1 248 MOV A, xl
+1 249 SUBB A, yl
+1 250 MOV A, xh
+1 251 SUBB A, yh
+1 252 JNC Label
+1 253 ENDM
+1 254
+1 255
+1 256 ;*************************************************************************
A51 MACRO ASSEMBLER MAIN 06/23/2006 11:55:35 PAGE 5
+1 257 ;宏定义:BHI_W(Branch if High)
+1 258 ;功能:双字节无符号数比较,如果大于则跳转
+1 259 ;参数:
+1 260 ; (xh,xl),(yh,yl):要比较的两个数
+1 261 ; Label:跳转目标
+1 262 ;*************************************************************************
+1 263 BHI_W MACRO xh,xl, yh,yl, Label
+1 264 SETB C
+1 265 MOV A, xl
+1 266 SUBB A, yl
+1 267 MOV A, xh
+1 268 SUBB A, yh
+1 269 JNC Label
+1 270 ENDM
+1 271
+1 272
+1 273 ;*************************************************************************
+1 274 ;宏定义:BLS_W(Branch if Low or Same)
+1 275 ;功能:双字节无符号数比较,如果小于或等于则跳转
+1 276 ;参数:
+1 277 ; (xh,xl),(yh,yl):要比较的两个数
+1 278 ; Label:跳转目标
+1 279 ;*************************************************************************
+1 280 BLS_W MACRO xh,xl, yh,yl, Label
+1 281 SETB C
+1 282 MOV A, xl
+1 283 SUBB A, yl
+1 284 MOV A, xh
+1 285 SUBB A, yh
+1 286 JC Label
+1 287 ENDM
+1 288
+1 289
+1 290 ;*************************************************************************
+1 291 ;宏定义:BLO_W(Branch if Low)
+1 292 ;功能:双字节无符号数比较,如果小于则跳转
+1 293 ;参数:
+1 294 ; (xh,xl),(yh,yl):要比较的两个数
+1 295 ; Label:跳转目标
+1 296 ;*************************************************************************
+1 297 BLO_W MACRO xh,xl, yh,yl, Label
+1 298 CLR C
+1 299 MOV A, xl
+1 300 SUBB A, yl
+1 301 MOV A, xh
+1 302 SUBB A, yh
+1 303 JC Label
+1 304 ENDM
+1 305
306 ;$include (Calc.INC) ;运算类程序
+1 307 ;*************************************************************************
+1 308 ;实用的8051单片机运算类程序
+1 309 ;适用于Keil C51编译器
+1 310 ;*************************************************************************
+1 311
+1 312
+1 313 ;*************************************************************************
+1 314 ;宏定义:XRLCB
+1 315 ;功能:CY与位变量_b异或,结果保存在CY中
+1 316 ;*************************************************************************
+1 317 XRLCB MACRO _b
+1 318 LOCAL next
+1 319 JNB _b, next
+1 320 CPL C
+1 321 next:
+1 322 ENDM
A51 MACRO ASSEMBLER MAIN 06/23/2006 11:55:35 PAGE 6
+1 323
+1 324
+1 325 ;*************************************************************************
+1 326 ;宏定义:XRLBB
+1 327 ;功能:两个位变量异或,结果保存在CY中
+1 328 ;*************************************************************************
+1 329 XRLBB MACRO b1, b2
+1 330 LOCAL next
+1 331 MOV C, b2
+1 332 JNB b1, next
+1 333 CPL C
+1 334 next:
+1 335 ENDM
+1 336
+1 337
+1 338 ;*************************************************************************
+1 339 ;宏定义:ADD_W
+1 340 ;功能:两个16位数相加
+1 341 ;参数:(xh,xl) = (xh,xl) + (yh,yl)
+1 342 ;*************************************************************************
+1 343 ADD_W MACRO xh,xl, yh,yl
+1 344 MOV A, xl
+1 345 ADD A, yl
+1 346 MOV xl, A
+1 347 MOV A, xh
+1 348 ADDC A, yh
+1 349 MOV xh, A
+1 350 ENDM
+1 351
+1 352
+1 353 ;*************************************************************************
+1 354 ;宏定义:ADDC_W
+1 355 ;功能:两个16位数带进位相加
+1 356 ;参数:(xh,xl) = (xh,xl) + (yh,yl) + C
+1 357 ;*************************************************************************
+1 358 ADDC_W MACRO xh,xl, yh,yl
+1 359 MOV A, xl
+1 360 ADDC A, yl
+1 361 MOV xl, A
+1 362 MOV A, xh
+1 363 ADDC A, yh
+1 364 MOV xh, A
+1 365 ENDM
+1 366
+1 367
+1 368 ;*************************************************************************
+1 369 ;宏定义:INC_W
+1 370 ;功能:16位数自增1
+1 371 ;参数:(xh,xl) = (xh,xl) + 1
+1 372 ;*************************************************************************
+1 373 INC_W MACRO xh, xl
+1 374 LOCAL next
+1 375 INC xl
+1 376 MOV A, xl
+1 377 JNZ next
+1 378 INC xh
+1 379 next:
+1 380 ENDM
+1 381
+1 382
+1 383 ;*************************************************************************
+1 384 ;宏定义:SUB_W
+1 385 ;功能:两个16位数相减
+1 386 ;参数:(xh,xl) = (xh,xl) - (yh,yl)
+1 387 ;*************************************************************************
+1 388 SUB_W MACRO xh,xl, yh,yl
A51 MACRO ASSEMBLER MAIN 06/23/2006 11:55:35 PAGE 7
+1 389 MOV A, xl
+1 390 CLR C
+1 391 SUBB A, yl
+1 392 MOV xl, A
+1 393 MOV A, xh
+1 394 SUBB A, yh
+1 395 MOV xh, A
+1 396 ENDM
+1 397
+1 398
+1 399 ;*************************************************************************
+1 400 ;宏定义:SUBB_W
+1 401 ;功能:两个16位数带借位相减
+1 402 ;参数:(xh,xl) = (xh,xl) - (yh,yl) - C
+1 403 ;*************************************************************************
+1 404 SUBB_W MACRO xh,xl, yh,yl
+1 405 MOV A, xl
+1 406 SUBB A, yl
+1 407 MOV xl, A
+1 408 MOV A, xh
+1 409 SUBB A, yh
+1 410 MOV xh, A
+1 411 ENDM
+1 412
+1 413
+1 414 ;*************************************************************************
+1 415 ;宏定义:DEC_W
+1 416 ;功能:16位数自减1
+1 417 ;参数:(xh,xl) = (xh,xl) - 1
+1 418 ;*************************************************************************
+1 419 DEC_W MACRO xh, xl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -