8086/8088不分带符号加和无符号加,统统使用add指令
7000H和1000H你把它看成是无符号数,那就不能用OF这个标志位进行判断。
在汇编语言里面,OF是判断带符号数是否产生溢出的,CF才是判断无符号数是否产生溢出。
所以,要是你把他们看成是无符号数加法,那么就不必理会OF是0是1,而是要看CF位。
很明显当然会出错
你只能先用mov配合寻址读es的单元的内容赋给ABCDX,然后进行add运算,完了再MOV存回
汇编原定义就是如此
把书的前两三章看仔细扎实些后面编程才不容易出错
建议看清华的书
我已经很久没有碰汇编了可能记忆不是很准确
方法应该就是这样子
一般只用通用寄存器参与运算
其一:兄弟.在加法运算中.操作数是不能够用段寄存器的.其二:在汇编中.我的经验是.要慎用段寄存器.即最好是先在代码段的最开始就把需要的段寄存器定义好.另外若在汇编中要用到段基址来进行加减运算时.不妨,用AX
BX
CX
DX
SI
DI
等寄存器来转换.
MOV
AX,1000H
MOV
ES,AX
MOV
DI,AX
;此时用DI
来表示你所定义的ES中的段基址
ADD
DI,2000H
ADD加的时候不分有无符号的~~呵呵~上课偷懒了吧~~
有无符号是靠标志位来控制的~~
只有无符号运算CF才是有效的
你那是MOV,MOV和ADD不是一样的好不好,弄清楚这两个指令的区别。