汇编语言程序设计 用16位乘法指令完成32位无符号数的乘法(结果64位)使用MUL指令,完成双字无符号
来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/07/14 20:52:23
汇编语言程序设计 用16位乘法指令完成32位无符号数的乘法(结果64位)使用MUL指令,完成双字无符号
data segment
first dw ,;第一个成数,低位在前,高位在后
second dw ,;同上
result dw 0,0,0,0 ;结果,低位在前,高位在后
LFLS dw ,;first低位*second低位,结果
HFLS dw ,;first高位*second低位,结果
LFHS dw ,;first低位*second高位
HFHS dw ,;高位*高位
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov ax,[first+0] ;获取first低位,+0可以省略,此处加0突出低位
mov bx,[second+0] ;同上
mul bx
mov [LFLS+0],ax
mov [LFLS+2],dx ;存取低位*低位的结果.下同,不再写了
mov ax,[first+2] ;
mov bx,[second+0] ;同上
mul bx
mov [HFLS+0],ax
mov [HFLS+2],dx ;存取高位*低位的结果.下同,不再写了
mov ax,[first+0] ;
mov bx,[second+2] ;同上
mul bx
mov [LFHS+0],ax
mov [LFHS+2],dx ;
mov ax,[first+2] ;
mov bx,[second+2] ;同上
mul bx
mov [HFHS+0],ax
mov [HFHS+2],dx ;
mov ax,[LFLS+0]
mov [result+0],AX ;结果的低位
mov ax,[LFLS+2]
add ax,[HFLS+0]
jnc next1
inc word ptr [result+4]
next1:add ax,[LFHS+0]
jnc next2
inc word ptr [result+4]
next2:mov [result+2],ax
mov ax,[HFLS+2]
add ax,[LFHS+2]
jnc next3
inc word ptr [result+6]
next3:add ax,[HFHS+0]
jnc next4
inc word ptr [result+6]
next4:add ax,[result+4] ;以前的进位
jnc next5
inc word ptr [result+6]
next5:mov [result+4],ax
mov ax,[HFHS+2]
add ax,[result+6]
mov [result+6],ax
mov ax,4c00h
int 21h
code ends
end start
first dw ,;第一个成数,低位在前,高位在后
second dw ,;同上
result dw 0,0,0,0 ;结果,低位在前,高位在后
LFLS dw ,;first低位*second低位,结果
HFLS dw ,;first高位*second低位,结果
LFHS dw ,;first低位*second高位
HFHS dw ,;高位*高位
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov ax,[first+0] ;获取first低位,+0可以省略,此处加0突出低位
mov bx,[second+0] ;同上
mul bx
mov [LFLS+0],ax
mov [LFLS+2],dx ;存取低位*低位的结果.下同,不再写了
mov ax,[first+2] ;
mov bx,[second+0] ;同上
mul bx
mov [HFLS+0],ax
mov [HFLS+2],dx ;存取高位*低位的结果.下同,不再写了
mov ax,[first+0] ;
mov bx,[second+2] ;同上
mul bx
mov [LFHS+0],ax
mov [LFHS+2],dx ;
mov ax,[first+2] ;
mov bx,[second+2] ;同上
mul bx
mov [HFHS+0],ax
mov [HFHS+2],dx ;
mov ax,[LFLS+0]
mov [result+0],AX ;结果的低位
mov ax,[LFLS+2]
add ax,[HFLS+0]
jnc next1
inc word ptr [result+4]
next1:add ax,[LFHS+0]
jnc next2
inc word ptr [result+4]
next2:mov [result+2],ax
mov ax,[HFLS+2]
add ax,[LFHS+2]
jnc next3
inc word ptr [result+6]
next3:add ax,[HFHS+0]
jnc next4
inc word ptr [result+6]
next4:add ax,[result+4] ;以前的进位
jnc next5
inc word ptr [result+6]
next5:mov [result+4],ax
mov ax,[HFHS+2]
add ax,[result+6]
mov [result+6],ax
mov ax,4c00h
int 21h
code ends
end start
汇编语言程序设计 用16位乘法指令完成32位无符号数的乘法(结果64位)使用MUL指令,完成双字无符号
汇编语言有符号乘法指令
求用汇编语言写“2个32位有符号数乘法”的程序
汇编语言用8086指令集和寄存器做32位有符号数学运算
用移位指令完成:34H*20(无符号数),结果存放在AX中
汇编,有符号数乘法的符号位扩展
Z=(W*X)/(Y*6)的汇编语言,其中XYZ均为16位无符号数,运算结果不超16位
如何用汇编语言编程实现16位无符号数运算X=Y/3.2+4Z;不能用乘除法指令.X=DS:[2000];Y=DS:[20
F=W-(X+6)-(R-9)用汇编语言写出,其中XWXR均为16位无符号数运算结果不超16位.
F=W-(X+6)-(R-9)用汇编语言写出,其中XWXR均为16位无符号数运算结果不超16位
一个计算机指令字长为16位,能完成32条不同的指令,该指令字的操作码为___位,地址码长度为___位.
为什么加1指令INC和减1指令对Cf标志位没有影响?(汇编语言的问题)