以下是五个基于8086处理器的简单汇编程序示例:
示例一:加法程序
ORG 100h
MOV AX, 1234H ; 将16进制数1234H加载到AX寄存器
MOV BX, 5678H ; 将16进制数5678H加载到BX寄存器
ADD AX, BX ; 将BX寄存器的值加到AX寄存器上
; 假设这里有一个显示或输出AX寄存器值的程序(略)
MOV AH, 4CH ; DOS中断调用号,用于程序退出
INT 21H ; DOS中断调用
END
示例二:数据交换程序
ORG 100h
MOV AX, 1234H ; 初始值
MOV BX, 5678H ; 初始值
XCHG AX, BX ; 交换AX和BX的值
; 假设这里有一个显示或输出AX和BX寄存器值的程序(略)
MOV AH, 4CH ; DOS中断调用号,用于程序退出
INT 21H ; DOS中断调用
END
示例三:条件跳转程序
ORG 100h
MOV AX, 1000H ; 假设AX是一个数
CMP AX, 2000H ; 比较AX和2000H
JL LESS_THAN ; 如果AX小于2000H,跳转到LESS_THAN标签
; 如果AX不小于2000H,则执行这里的代码(略)
JMP END_PROG ; 跳转到程序结束
LESS_THAN:
; 如果AX小于2000H,执行这里的代码(略)
END_PROG:
MOV AH, 4CH ; DOS中断调用号,用于程序退出
INT 21H ; DOS中断调用
END
示例四:使用循环的程序
ORG 100h
MOV CX, 5 ; 设置循环计数器CX为5
MOV AH, 0 ; 假设我们要将某个累加器清零(例如,AL寄存器)
START_LOOP:
ADD AH, 1 ; 每次循环,AH加1
LOOP START_LOOP ; 递减CX并检查是否为0,如果不为0则跳转到START_LOOP
; 此时AH的值应该是5
; 假设这里有一个显示或输出AH寄存器值的程序(略)
MOV AH, 4CH ; DOS中断调用号,用于程序退出
INT 21H ; DOS中断调用
END
示例五:从键盘读取并显示字符的程序
ORG 100h
MOV AH, 01H ; DOS功能号,从键盘读取一个字符
INT 21H ; 调用DOS中断
; 假设AL现在包含从键盘读取的字符
MOV DL, AL ; 将AL的值移动到DL(DOS显示字符的数据寄存器)
MOV AH, 02H ; DOS功能号,显示一个字符
INT 21H ; 调用DOS中断以显示字符
MOV AH, 4CH ; DOS中断调用号,用于程序退出
INT 21H ; DOS中断调用
END
注意:上述示例中的“假设这里有一个显示或输出…的程序(略)”部分需要使用具体的DOS中断或其他方法来实现。在真实的汇编编程环境中,可能需要包含额外的代码来与DOS或其他操作系统进行交互,以便显示或输出数据。此外,这些示例假设正在使用DOS环境,并且已经设置了适当的段和堆栈。在实际编程中,可能还需要处理这些问题。