下载此文档

汇编程序.doc


文档分类:汽车/机械/制造 | 页数:约29页 举报非法文档有奖
1/29
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/29 下载此文档
文档列表 文档介绍
汇编程序;== 给 DD数x 赋值的宏==将 DD 型的两个数 X,Y 其中 Y 的值赋给 X give macro x,y mov ax,y mov x,ax mov ax,y[2] mov x[2],ax endm ;** 给 DD数x 赋值的宏**将 DD 型的两个数 X,Y 其中 Y 的值赋给 X ;== 判断正负宏== 判断 DD型 x,y 的正负利用 fhx 、 fhy 两个常数记录下并将; 他们都化为正数方便运算 judge macro x,y local judge1,judge2,judge3,judge4;; 标号注释,用于保证宏的重复调用;; 定位的标号不错乱 mov ax,x cmp ax,0 jge judge1 mov fhx,1;; 记录 x 的正负 neg x;; 转换为正数 judge1: mov ax,x[2] cmp ax,0 jge judge2 mov fhx,1 neg x[2] judge2: mov ax,y cmp ax,0 jge judge3 mov fhy,1 neg y judge3: mov ax,y[2] cmp ax,0 jge judge4 mov fhy,1 neg y[2] judge4: endm ;** 判断正负宏结束** ;== 根据介入 y 值的 0,1将x 结果转为正或负== change macro x,y local change1 cmp y,0 je change1 neg x neg x[2] change1: endm ;** 根据介入 y 值的 0,1将x 结果转为正或负** ;== 进位宏开始== 对小数部分除以 100 ,将商进位,余数补回小数 carry macro x push cx;; 免除对宏外面的 cx,dx 值造成干扰 push dx mov ax,x[2] mov cx,100 mov dx,0 div cx mov x[2],dx add x,ax pop dx pop cx endm ;** 进位宏结束** ;== 新的加法宏开始== 算法,同号相加,异号相减 newadd macro x,y local subsub,endnewadd,returnadd1,xbig,endadd1,endadd2,endadd3,en dadda,endaddc judge number3,number4;; 不能直接代用 x,y. ;;x 其实既 number3,y 既 number4 。原因,下面一条注释 mov ax,fhx cmp fhy,ax jne subsub ;;------ 两个数符号相等则,直接两部分相加 mov ax,y add x,ax mov ax,y[2] add x[2],ax carry number3 change number3,fhx jmp endnewadd ;;--- 如果符号相反则,大数减去小数 subsub: mov ax,y cmp x,ax ja xbig jne endadda mov ax,y[2] cmp x[2],ax ja xbig endadda: mov ax,x sub y,ax add y[2],100 mov ax,x[2] sub y[2],ax cmp y[2],100 jnb endadd1 sub y,1 jmp endaddc endadd1: sub y[2],100 endaddc: give number3,number4 change number3,fhy jmp endnewadd xbig: mov ax,y sub x,ax add x[2],100 mov ax,y[2] sub x[2],ax cmp x[2],100 jnb endadd2 sub x,1 jmp endadd3 endadd2: sub x[2],100 endadd3: change number3,fhx jmp endnewadd endnewadd: mov fhx,0 mov fhy,0 endm ;** 新的加法宏结束** ;== 新的减法宏== newsub macro x,y mov fhx,1 change number4,fhx mov fhx,0 newadd number3,number4 endm ;** 新的减法宏** ;== 新的乘法宏== 算法(a1+b1)*(a2+b2)=a1*a2+a1*b2+a2*1+b1*b2 newmul macro x,y judge number3,number4 push bx push dx mov bx,y mov ax,x mul bx push ax;; 压栈用于后面的加法 mov

汇编程序 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数29
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xxj16588
  • 文件大小0 KB
  • 时间2016-04-07
最近更新