汇编网首页登录博客注册
lsmss的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
文章收藏
友情链接

[2009-10-15 13:38] 深入理解逻辑位移指令

逻辑位移指令shl和shr是第14章的内容,我感觉书上对这两个指令的描述不是太好理解,实际上对shl指令更容易让人理解的描述是:shl指令对给定的目的操作数左移(cl)次,每次移位时最高的那一位移入CF中,最低位补0,移动位数大于1时,必须将移动位数放在cl中。shr指令也可以类比理解。
    通过编写下面的一个子程序,能更加深入的理解了这两个指令。

;功能:把寄存器中的数值显示在屏幕上
;入口参数:ax,需要在屏幕上显示的寄存器
    
inputReg:
      mov cx,0003h         ;设置cl=3,初次左移3位。ch=0
   s1:shl ...
阅读全文 | 评论次数(0) | 浏览次数(403) | 所属类型(默认类型)

[2009-09-03 21:05] 标志寄存器

标志寄存器FR(Flag Register)

  8086有一个18位的标志寄存器FR,在FR中有意义的有9位,其中6位是状态位,3位是控制位。
    按顺序是:CF PF AF ZF SF TF IF DF OF 

  OF(Overflow Flag): 溢出标志位OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被置为0。

  DF(Direction Flag):方向标志DF位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。控制每次操作后si,di的增减,0增1减
 
...
阅读全文 | 评论次数(0) | 浏览次数(498) | 所属类型(默认类型)

[2009-08-08 14:24] 实验8中的小陷阱

assume cs:codesg
codesg segment

mov ax,4c00h
int 21h
start:
 
    mov ax,0
 s:
    nop  ;现在还没有用,一会将被覆盖。
    nop
    mov di,offset s   ;把标号s的偏移地址赋给di
    mov si,offset s2  ;把标号s2的偏移地址赋给si
    mov ax,cs:[si]    ;[si]是s2的偏移地址,该语句把标号s2
                      ;处的语句jmp short s1(机器码:EBF6)
  ...
阅读全文 | 评论次数(0) | 浏览次数(400) | 所属类型(默认类型)