8086/,特别要注意运算中加法进位和减法借位问题。。如8090H+8182H8090H分解为字节加80H90H+8182H+81H82H10212H+1H(进1)12H(进1)02H把以上的字节看成为字,四字节可分为两个字的加法。由此可推出两个M个字节数的加等于作M次字节加或M/+[bx][bx]+cy(进cf)al(进cf) exp10- segmentaddr1 db6ch,8ah,3bh,49haddr2 db3eh,5bh,6fh,7dhresult db0,0,0,0len equ4data endsDate6第10章数据运算程序设计code segment assumecs:code,ds:datastart: movax,data movds,ax movsi,offsetaddr1 ;si←取被加数addr1地址偏移量 movbx,offsetaddr2 ;bx←取加数addr2地址偏移量 movdi,offsetresult ;di←取和result地址偏移量 movcl,len ;cl←字节数 clc ;清进位标志skip: moval,[si] adcal,[bx] ;完成字节加法 mov[di],al ;保存求和结果 incsi ;修改地址 inc bx inc di dec cl ;字节计数 jnzskip movax,4c00h ;返回DOS int21hcode ends -[bx][bx]-cf(借cf)al(借cf)alDate8第10章数据运算程序设计name exp10- segmentaddr1 dw8a6ch,493bh ;定义4字节被减数addr2 dw5b3eh,7d6fh ;定义4字节减数result dw2dup(?) ;定义存放差的单元len dw0002h ;定义循环计数值为2个字data segment assumecs:code,ds:datastart: movax,data movds,ax movsi,offsetaddr1 ;si←取被减数addr1地址偏移量 movbx,offsetaddr2 ;bx←取减数addr2地址偏移量 movdi,offsetresult ;di←取差result地址偏移量 movcx,len ;cx←字数 clc ;清进位标志skip: movax,[si] sbbax,[bx] ;完成字减法 mov[di],ax ;保存求差的结果Date10第10章数据运算程序设计
安徽理工大学计机汇编教程-数据运算程序设计 来自淘豆网www.taodocs.com转载请标明出处.