当前位置:首页 > 汇编语言只用ADD指令实现整数和浮点数的加减乘法
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
共分享92篇相关文档