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

我的博客

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

[2009-11-21 20:32] 关于DOS光标的初步研究

在DOS下面命令行中总有一个在闪烁的下划线,这个就是光标。不过一直找不到,它是如何实现。经过研究中断的代码后,找到了一点儿线索。就是内存字单元0000:0450保存着光标的位置坐标。低字节保存着列位置,高字节保存行位置。...
阅读全文 | 评论次数(1) | 浏览次数(840) | 所属类型(读书笔记)

[2009-11-19 16:32] 关于NEG命令

NEG的全文是negate,意思是否定。对于该命令执行的操作是用0减去操作数。也就是取其相反数。有的书上翻译成取补指令,容易与补码混淆。
补码的定义是:正数的补码是其原码,负数的补码是原码取反加1.
这一点要清楚。...
阅读全文 | 评论次数(0) | 浏览次数(560) | 所属类型(读书笔记)

[2009-11-17 20:33] 存储器数据交换

有这样一个题目:
下列程序片段完成什么功能,可否有更简单的方法实现同样的功能?
XCHG AX,[SI]
XCHG AX,[DI]
XCHG AX,[SI]
其实这个片段可以从2个方面来看:
①交换了DS:SI与DS:DI两个字存储单元的内容
②DS:SI与DS:DI指向的内容进行了交换
我能想到的方法有下面的几种:
 0000                 start: ;利用堆栈交换
 0000  21   FF 34        push [si]
 0002  21   FF 35        push [di]
 0004  22   8F 04        pop [si]
 0006  22   8F 05        pop...
阅读全文 | 评论次数(1) | 浏览次数(799) | 所属类型(读书笔记)

[2009-11-13 10:47] MOV 指令周期数

0000                                     data segment
 0000 00                               VARX db ?
 0001 0000                               VARY dw ?
 0003                                     data ends
                                     ;
 0000                                     code segment
                                       assume cs:code,ds:data
 0000   4   B8 ---- R                start:mov ax,data
 0003   2   8E D8                          mov ds,ax
 0005   4   B8 0034                        mo...
阅读全文 | 评论次数(0) | 浏览次数(265) | 所属类型(读书笔记)

[2009-11-05 11:07] 如何理解减法对标志位的影响

减法运算:
MOV AH ,0A3H
MOV AL ,0AH
SUB AH,AL
计算结果是 (AH)=99H(1001 1001 B)

如果按照无符号数来看待并进行计算的话,相当于进行163-10的运算结果应该是153(即99H)是正确的。如果按照有符号数来看待并进行计算的话,相当于进行(-93)-(10)的运算,结果应该是(-103)(即补码表示的99H)是正确的。
但是:
MOV AH,0AH
MOV AL,0BH
SUB AH,AL
计算结果是(AH)=FFH(1111 1111 B)
如果按照有符号数来看待并计算的话,相当于进行10-11的运算,结果应该是-...
阅读全文 | 评论次数(1) | 浏览次数(439) | 所属类型(读书笔记)

[2009-11-04 20:48] 1.传送指令

传送指令 MOV
MOV DST,SRC
传送指令的例外:
①源和目的不能同时是段寄存器;代码段寄存器CS不能作为目的。指令指针IP
  既不能作为源,也不能作为目的。
②源操作数和目的操作数类型要一致。
③除了串操作指令外,源操作数和目的操作数不能同时是存储器操作数。...
阅读全文 | 评论次数(0) | 浏览次数(264) | 所属类型(读书笔记)

[2009-11-03 20:04] 作为汇编最好的入门书籍

今天再看其它的汇编书籍,发现容易了很多。主要是有入门的基础了,看起来就像行云流水一样了。...
阅读全文 | 评论次数(0) | 浏览次数(326) | 所属类型(读书笔记)

[2009-10-31 19:26] 标志寄存器的英文单词

OF(OVERFLOW FLAG)溢出标志位:
1:OV(overflow)0:NV(non-overflow)
DF(Direction FLAG)方向标志位:
1:DN(down) 0:UP(up)
IF(Interrupt FLAG)中断标志位
TF(Trap FLAG)
SF(sign FLAG)符号标志位
1:NG(negative)0:PL(plus)
ZF(Zero FLAG)零标志位
1:ZR(zero)0:NZ(not zero)
AF(accessary carry flag)辅助进位标志位
PF(parity FLAG)奇偶标志位
1:PE(Par...
阅读全文 | 评论次数(0) | 浏览次数(254) | 所属类型(读书笔记)

[2009-10-13 18:36] 关于栈的初步研究

点击查看原图
在做第三章的实验的时候,书上说,要分析一下栈中的内容为什么会变化。我还没有研究出它为什么会变化,但是也得出了一些结论。
开机以后SS:SP指向一个系统自动分配的地址。但是这个分配原则现在还不清楚。如:SS=22A8,SP=FFEE。你可以在空白区域中先写几行代码试验一下。注意代码中不能包含对栈段寄存器的操作。先查看22A8:FFEE内存中的内容,发现什么也没有。但是如果将输入的指令用T命令执行,然后马上查看22A8:FFE0 FFEE的内容就会发现如下规律:
DS:[]:    DD DD 00 00 IP IP CS CS XX XX SP
其中SP代表栈的偏移地址,即栈顶单元。XX ...
阅读全文 | 评论次数(0) | 浏览次数(253) | 所属类型(读书笔记)

[2009-10-11 14:03] 如何理解LOOP?

在汇编用LOOP实现循环的功能。
语法 LOOP 标号。
但是在学习的过程中有几个问题想不明白.
1.对应的机器码是什么呢?
查看了一下执行文件。发现LOOP语句的机器码不固定。E2FC,E2FA,E2F7...想推测一下。是不是E2表示是LOOP功能后面的和标号的IP地址有关系?
2.标号的IP记录在哪里了呢?
当执行LOOP语句的时候CPU先把CX减1,然后判断它是不是为0.如果不为0,就把IP的内容改成标号的地址偏移量。如果为0,则把IP的值加2,执行LOOP下面的语句。但是没有发现标号所在的内存单元的偏移地址保存在哪里。...
阅读全文 | 评论次数(2) | 浏览次数(513) | 所属类型(读书笔记)
页码数(2):  1  2