汇编语言第三章知识总结

  1. move dx,1000H
    move ds,dx (1000H 为段地址)
    move ax,[0] (0 为偏移地址)
    目的是把1000:0处存放的字型数据存入ax中;1000:0处当做低位,1000:1处当做高位。move [0],ax 类类似。

  2. 例题1:
    将10000H~1000FH空间当做栈,初始状态栈为空。
    设置AX= 00AH , BX = 00BH;
    利用栈交换AX和BX 中的值

    		move ax ,1000H
    		move ss, ax
    		move sp,0010H  //初始化栈顶
    		move ax,00AH
    		move bx,00BH
    		push ax 
    		push bx
    		pop ax
    		pop bx
    
  3. move 一步就完成了, push和pop 都需要两步,push是先让CPU 改变是sp,再向ss:sp(SS:stack segment register 栈段暂存器 SP:stack pointer 栈指针) 中传送。pop 是让CPU先读取再改变sp。

  4. 在执行push指令后,如果栈顶超出栈空间,会覆盖栈外的数据。

  5. 栈段例子
    将10000H~1000FH 中的8个字逆序复制到20000H~2000FH中。

move ax,1000H
move ds,ax
move ax,2000H
move ss,ax
move sp,10H
push [0]
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值