程序功能: 设片内RAM 30H的内容为无符号数,若30H单元内容大于#10H,则片内RAM40H单元置30H单元内容的高4位;若30H单元内容小于#10H,则40H单元置30H单元内容的低4位;若30H单元内容等于#10H,40H单元置为#01H.

程序代码:

MOV A,30H

CJNE 30H, '1: #10H', LP1

MOV 40H, '2: 30H'

SJMP LP2

LP1: JC LP3

          '3: JNC'    A         

          '4: ANL'     A, #0FH       

MOV 40H,A

SJMP LP2

LP3: 5 30H, #0FH

MOV 40H,30H

LP2: SJMP $

代码解释:

  1. CJNE 30H, #10H, LP1: 将30H单元内容与#10H比较,若不相等则跳转到LP1;
  2. MOV 40H, 30H: 将30H单元内容直接存入40H单元;
  3. JNC LP3: 若比较结果为CF=0 (大于等于),则跳转到LP3;
  4. ANL A, #0FH: 将A寄存器内容与#0FH进行与运算,保留低4位;
  5. MOV 40H, 30H: 将30H单元内容存入40H单元,此时30H单元内容已经经过了与#0FH运算,保留了低4位。

本程序利用了CJNE指令和标志位CF来判断30H单元内容的大小,并根据大小分别对40H单元进行不同的操作。


原文地址: https://www.cveoy.top/t/topic/ombt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录