8051微处理器中两个8位数的乘法程序
在这里,我们将学习如何使用8051微控制器来乘以两个8位数。寄存器A和B将用于乘法运算。乘法运算不能使用其他寄存器。乘法的结果可能超过8位大小。因此,高位字节存储在寄存器B中,低位字节在乘法运算后将存储在累加器A中。
我们将两个数FFH和FFH分别放在20H和21H地址中,相乘后的结果将存储在30H和31H地址中。
| 地址 | 值 |
|---|---|
| | … |
| 20H | FFH |
| 21H | FFH |
| | … |
| 30H | 00H |
| 31H | 00H |
| | … |
程序
MOV R0, #20H ; set source address 20H to R0 MOV R1, #30H ; set destination address 30H to R1 MOV A, @R0 ; take the first operand from source to register A INC R0 ; Point to the next location MOV B, @R0 ; take second operand from source to register B MUL AB ; Multiply A and B MOV @R1, B ; Store higher order byte to 30H INC R1 ; Increase R1 to point to the next location MOV @R1, A ; Store lower order byte to 31H HALT: SJMP HALT ; Stop the program
8051提供**MUL AB**指令。使用此指令可以完成乘法运算。在其他一些微处理器(如8085)中,没有MUL指令。在该微处理器中,我们需要使用重复的ADD操作来获得乘法的结果。
当结果小于255时,溢出标志OV为低,否则为1。
输出
| 地址 | 值 |
|---|---|
| | … |
| 20H | FFH |
| 21H | FFH |
| | … |
| 30H | FEH |
| 31H | 01H |
| | … |
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP