求解2.1 add,ax,ax
本帖最后由 追逐 于 2012-9-9 03:28 编辑mov ax,62627 ax=F4A3H
记住,这里的62627是十进制,转换为十六进制后,就是F4A3
mov ah,31h ax=31A3H
意思,是把31值送入ah中,并覆盖,即31A3H
mov al,23h ax=3123h
意思,是把23值送入al中,并覆盖,即3123H
add,ax,ax ax=6246H
意思就是把AX加上AX在送入AX中,和C语言的a+=a;一个意思
不知道是那个AX+AX啊 我用ax=31A3H+3123h=62C6算了几次不知道怎么解答
为什么是AX=3123+3123
难道编程语言是如果要算这句ADD,AX,AX 的话
mov ah,31h
mov al,23h
add,ax,ax
那么是从上一句的算就可以了吗?就是MOV AL,23H AX=3123
为什么不是
mov ah,31h AX=31A3
mov al,23h AX=3123这2个相加呢?求仔细说下原理啊
没明白,纯顶纯支持................ 你走入误区了,当寄存器里的数被改变后,寄存器保留的是最后改变过的值,以前的值被覆盖了,那个AX+AX=3123h+3123h 31A3H被3123H覆盖了,AX最终是3123H,AX+AX就相当于寄存器里最后存在的值的2倍 额你想说什么啊!!!!!! 昏迷mov ax,62627 ax=F4A3H
mov ah,31h ax=31A3H
mov al,23h ax=3123h
你都算出来了 算完这些 AX 是3123因为前面的AX=31A3H 变成了3123H那么下面进行
add ax,ax ax=6246H
这不很正确吗? mov是覆盖,而覆盖的意思就是:前面的数据已经被彻底替换,已经不存在了。
就是这么简单。楼主懂了吗? 前面的程序执行完后植已经变了啊。 楼主你好!
为什么不是
mov ah,31h AX=31A3
mov al,23h AX=3123这2个相加呢?求仔细说下原理啊
AX是16位通用寄存器(累加),一次只能存储一组16位数据(2Byte).所以它不能同时存储31A3 & 3123这两组数据,那执行MOV AL,23H时,就覆盖了原来的'A3',即
AX为:3123,所以,ADD AX,AX 的结果为:6246H
俺也刚学,说的不对请见谅!一起努力哈!谢谢:lol
有点长,不怎么远看了
页:
[1]