鱼C论坛

 找回密码
 立即注册
查看: 3577|回复: 3

汇编语言(紧急)

[复制链接]
发表于 2011-6-23 09:59:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在王爽老师汇编书中的问题2.1中的 问题

mov ax,001ah
mov bx,0026h
add,al,bl
add ah,bl   这里开始我就很纳闷 十分纳闷  他的ax是2640h bx是0026h  bx数据没改 ax的2640h怎么算的?
难道26和40结合?
接着的下面 就一窍不懂 前面还好理解 后面不好理解 是怎么算的?
mov ah,0 ax 0040h bx 4026h 这个是什么意思 怎么算出来的?

我是新手 急需高手解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-23 10:23:05 | 显示全部楼层
本帖最后由 Miller01001 于 2011-6-23 10:33 编辑

mov ax,001ah
mov bx,0026h
add,al,bl
add ah,bl   这里开始我就很纳闷 十分纳闷  他的ax是2640h bx是0026h  bx数据没改 ax的2640h怎么算的?
难道26和40结合?
接着的下面 就一窍不懂 前面还好理解 后面不好理解 是怎么算的?
mov ah,0 ax 0040h bx 4026h 这个是什么意思 怎么算出来的?

你就把AX,BX寄存器当作变量来使用,但是他们有高低位之分
mov ax,001ah

解答,AX = AH, AL
现在AH的高位是00H ,低位是1AH
因为最老的处理器是8位的,而intel兼容了老的处理器、
8086是16位的
所以兼容了8位的处理了,每8位1个字节。AX是16位处理器的寄存器所以分高低
同理mov bx,0026h
BX = BH,BL
BH = 00H ,BL =26H

add,al,bl ; 1a+26 = 40H ;现在AL的低位是1aH
低位加上低位嘛。然后把相加的值传送给AL
因为AX的高位并没有变所以AH还是00.所以AX = 0040H
       ;  mov ax,001ah
       ;  mov bx,0026h
add ah,bl
因为是AX高位加上BX的低位,把值传送给AX的高位
就是00H + 26H = 26H ;,AH的值是26H,AX=2640H。
因为add,al,bl相加已经把AX的低位的值改变了,所以AX = 2640H
因为是16位的寄存器,所以AX现在的值是26   40H了
                                                                  ↑     ↑
                                                               高位 低位  
                                                                AH     AL

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-6-23 10:35:20 | 显示全部楼层
add,al,bl ; 1a+26 = 40H ;现在AL的低位是1aH
低位加上低位嘛。然后把相加的值传送给AL
因为AX的高位并没有变所以AH还是00.所以AX = 0040H
mov ax,001ah
mov bx,0026h
add ah,bl
因为是AH高位加上BX的低位,把值传送给AH
就是00H + 26H = 26H ;现在AX的高位,AH的值是26H,AX=2640H。
因为add,al,bl相加已经把AX的低位改变了,所以AX = 2640H
因为是16位的寄存器,所以AX现在的值是2640H了
不怎么好理解
下面的 add al,85h 0040h 这个怎么算?
也是用你那个方法吗? 那al是低的 低是40 高呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-23 10:38:40 | 显示全部楼层
本帖最后由 Miller01001 于 2011-6-23 10:42 编辑

下面的 add al,85h 0040h 这个怎么算?
也是用你那个方法吗? 那al是低的 低是40 高呢?
add al,85H
就是说把AX的低位的值在加上85H,然后传送给AX的低位AL
AX的高位,是看你对AX的高位做了什么操作他随时可以改变的
用汇编指令去改变寄存器的值啊,如果指令没有对寄存器进行任何操作
他的值是不会改变的。默认全是AX = 0000 ; 因为是16位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 00:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表