汇编语言只用ADD指令实现整数和浮点数的加减乘法 联系客服

发布时间 : 星期二 文章汇编语言只用ADD指令实现整数和浮点数的加减乘法更新完毕开始阅读50c0c2db33d4b14e85246854

mov dx,float2_figure+2 ;-------------------------------------- ;将各个数变为补码 d_add:

mov ah,float1_sign test ah,1 jz d_add1 mov ah,0 not ax not bx add bx,1 jnc d_add1 add ax,1 d_add1:

mov ch,float2_sign test ch,1 jz d_add2 mov ch,0 not cx not dx add dx,1 jnc d_add2 add cx,1

;-------------------------------------- ;运算 d_add2:

add ax,cx add bx,dx jc adjust2_a test ax,80h jnz YOU_GUI_a mov result,ax mov result+2,bx call DISPLAY_JIE call DISPLAY_RESULT ret

adjust2_a: add ax,1 test ax,80h jnz YOU_GUI_a mov result,ax mov result+2,bx call DISPLAY_JIE call DISPLAY_RESULT

ret

YOU_GUI_a: shr bx,1 shr ax,1 jc adjust3_a mov cx,float_jie add cx,1 cmp cx,0100h jz exit_a

mov float_jie,cx mov result,ax mov result+2,bx call DISPLAY_JIE call DISPLAY_RESULT ret

adjust3_a:

add bx,8000h mov cx,float_jie add cx,1 cmp cx,0100h jz exit_a

mov float_jie,cx mov result,ax mov result+2,bx call DISPLAY_JIE call DISPLAY_RESULT exit_a:

;call OVERFLOW ret

FLOAT_ADD endp

;=================================================== ;=================================================== ;将剩余数据存到相应内存 SAVE_FLOAT_DATA proc near pop bx

;;;;;;;;;;;;将第一个浮点数的信息存入内存;;;;;;;;;;;;;;;;;;; mov al,[bx] add al,208 mov [bx],al

mov [float1_sign],al inc bx xor ch,ch mov cl,7 mov ax,0

beginf1_jie:

mov al,[bx] add al,208 mov [bx],al

add ah,al;将输入的字符串组成一个数 rol ah,1

add bx,1;指向下一个字符 loop beginf1_jie mov al,[bx] add al,208 mov [bx],al

add ah,al;将输入的字符串组成一个数 ;rol ah,1

add bx,1;指向下一个字符 push bx

lea bx,float1_jie ; add bx,2 mov [bx],ah pop bx mov cl,15 mov ax,0 mov dx,0 beginf1_figure1: mov al,[bx] add al,208 mov [bx],al

add dx,al;将输入的字符串组成一个数 rol dx,1

add bx,1;指向下一个字符 loop beginf1_figure1 mov cl,8 mov ch,0 beginf1_figure2: mov al,[bx] add al,208 mov [bx],al

add dx,al;将输入的字符串组成一个数 shl dx,1 jc ah1 shl ah,1 add ah,0 inc bx

loop beginf1_figure2 jmp shr1

ah1:

shl ah,1 add ah,1 inc bx

loop beginf1_figure2 ; add bx,1;指向下一个字符 shr1:

shr ah,1 jc shr11 shr dx,1 jmp save1 shr11:

shr dx,1 add dx,80h save1:

;push bx

;lea bx,float1_figure mov float1_figure+2,dx mov float1_figure,ah ; pop bx

;;;;;;;;;;;;将第二个浮点数的信息存入内存;;;;;;;;;;;;;;;;;;;;; mov al,[bx] add al,208 mov [bx],al

mov [float2_sign],al inc bx xor ch,ch mov cl,7 mov ax,0 beginf2_jie:

mov al,[bx] add al,208 mov [bx],al

add ah,al;将输入的字符串组成一个数 rol ah,1

add bx,1;指向下一个字符 loop beginf2_jie mov al,[bx] add al,208 mov [bx],al

add ah,al;将输入的字符串组成一个数 ;rol ah,1