回 帖 发 新 帖 刷新版面

主题:[讨论]汇编理论

1:都知道如果被除数是16位的,可以用div除一个8位的数,把商放在al中,余数放在ah中,
但是如那个除数很小的化,8为的al不能完整表达这个商,怎么办
同样如果那个除数很大的化,8为的ah不能完整表达这个余数,怎么办??

2:汇编中本来就支持用+,-,*,%,那么这些与用add,sub,mul,div所德结果有什么区别,
或者说add,sub,mul,div有什么特别的地方,使不能使用+,-,*,%

3:对语句  mov  cx,(x1-x2)
其中x1,x2在ds中定义如下
data  degment
   x1   db  'djkaalskdla'
   x2   db   'sala'
data   ends
这个语句为什么能知道cx中放入的是x1,x2两个首地址相减,即放入的是x1字符串的个数
而不是x1,x2两个首单元中两个字符'd','s'相减的结果呢??

回复列表 (共8个回复)

沙发

1.把除数放在cl里,ch里存放0,除cx
2.add/sub/mul/div是运行时计算,+,-,*,%是编译时运算或定址运算
3.只要在假指令上的内存变量则是计算地址,员括号把真指令转换为假指令

板凳

请问def先生:对于第一个问题,“把除数放在cl里,ch里存放0,除cx”,这样除数的有效位还是8位,并没有扩展或小数精确,结果不是一样吗?

3 楼

请问LOOP     $ 什么意思??


还有这个MOV     DX,21BH    
    MOV     Al,90H
    OUT     DX,Al  
怎么屏幕上什么也没有输出
难道OUT 出来的东西放别处

4 楼

mov [bx]+12h,date;
其中data是字型变量名
为什么不正确??

5 楼

loop是循环调用语句
端口输出,但是要显示才行的啊

6 楼

能再详细一点吗
我还是不明白

7 楼

你的类型不匹配,且字母有错
mov word ptr 18[bx],data
我不知道你那种写法是否正确
所以将12h改成了18

8 楼

这里加   MOV     Al,21H
    OUT     DX,Al 
就能输出了 
[em1]

我来回复

您尚未登录,请登录后再回复。点此登录或注册