求用汇编语言写“2个32位有符号数乘法”的程序注明:有符号

来源:学生作业学帮网 编辑:学帮网 时间:2024/04/26 17:39:33

求用汇编语言写“2个32位有符号数乘法”的程序
注明:有符号

我承认程序不是我写的~是小文写的~不过分数我代领了~哈哈哈哈哈
assume cs:code,ds:data
data segment
NA dw 0F321H,09AFCH
NB dw 08818H,0301DH
;-------第一个字是等待相乘的数的高16位,第二个是低十六位
T1 dw 0,0,0
T2 dw 0,0,0
;-------32位数乘以16位数不可能大于48位,所以分配3个字
R dw 0,0,0,0
;-------32位数乘以32位数不可能大于64位,所以为结果分配4个字
data ends
code segment
start:mov ax,data
mov ds,ax
;-------初始化段寄存器
Step1:mov ax,NA+2
mov bx,NB+2
mul bx
mov T1+4,ax
mov cx,dx
;-------Number A 的低16位乘以 Number B 的低十六位,结果存入T1+4
;进位存入CX
mov ax,NA
mov bx,NB+2
mul bx
mov T1+2,ax
add T1+2,cx
adc T1,dx
;-------Number A 的高16位乘以 Number B 的低十六位,结果存入T1+4
;结果存入T1+2,将T1+2与上一次相乘的进位相加存入T1+2
;将第二次相乘的进位带符号相加入 T1(前一位的相加可能产生进位)
Step2:mov ax,NA+2
mov bx,NB
mul bx
mov T2+4,ax
mov cx,dx
;-------同理
mov ax,NA
mov bx,NB
mul bx
mov T2+2,ax
add T2+2,cx
adc T2,dx
;-------同理
SUM:mov ax,T1+4
mov R+6,ax
mov ax,T2+4
add T1+2,ax
mov ax,T1+2
mov R+4,ax
mov ax,T2+2
adc T1,ax
mov ax,T1
mov R+2,ax
mov ax,T2
adc R,ax
;-------错位相加
mov ax,4C00H
int 21H
code ends
end start
原理图:
NA NA+2
× NB NB+2
——————————————————
T1 T1+2 T1+4
+ T2 T2+2 T2+4
——————————————————
R R+2 R+4 R+6

求用汇编语言写“2个32位有符号数乘法”的程序注明:有符号 2个16位无符号数相加 显示结果(微机的) 求程序 汇编语言 微机原理的 用汇编语言写一个筛选10有符号的数的最大数和最小数写个那个算法就行 用汇编语言设计一个程序,求10个无符号数中的最大值.并将最大值存入变量MAX中写得好再加分哈. 用汇编语言编写下面两个程序1,编写一个程序,把变量bufX和bufY中较大者存入bufZ;若两者相等,则把其中之一存入bufZ中,假设变量存放的是8位无符号数2,bufX,bufY和bufZ是3个有符号十六进制数,编写一 汇编语言程序设计 用16位乘法指令完成32位无符号数的乘法(结果64位)使用MUL指令,完成双字无符号 汇编语言中标志寄存器的标志位的改变,与参加运算的是有符号数还是无符号数有关吗? 汇编语言:在buffer为首地址的内存单元中,存放10个16位带符号数,求这10个数的最大值并保存到max单元中. 汇编语言用8086指令集和寄存器做32位有符号数学运算用户输入两个有符号数,从-2147483648到2147483647范围的,运算结果要判断溢出,8086的原生寄存器只有16位,所以需要用到拼凑,计算加减乘除就好, C语言32位有符号数和无符号数之间怎么强制转换例如有个32位有符号数 -1946090562转为无符号的 2348876734不要用printf函数 汇编语言的无符号数减法对于无符号数,sub指令是怎样形成cf标志位的?对于无符号数减法的电路实现,是否与有符号数一样?把减数按位求反加1再用加法实现? 汇编语言 输入10-20个有符号的十进制数,并统计大于零,小于零,等于零的个数 F=W-(X+6)-(R-9)用汇编语言写出,其中XWXR均为16位无符号数运算结果不超16位. F=W-(X+6)-(R-9)用汇编语言写出,其中XWXR均为16位无符号数运算结果不超16位 汇编语言编写 已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元. 汇编语言编程序一、 求两个32位有符号数DATA1和DATA2的和.若计算正确结果小于最小负数,则将最小负数存入SUM单元中;若计算正确结果大于最大正数,则将最大正数存入SUM单元中;否 用汇编语言实现 (a*b-c)/d 其中a、b、c、d均为有符号数,急求啊 汇编语言 编程 已知在AX,BX 中放一32位提议符号的二进制数,求其绝对值送入CX,DX中.其中AX,CX放高位