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

我的博客

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

[2008-06-17 19:55] 【实验14】

assume cs:code 
data segment
        db '9','/','8','/','7',' ','4',':','2',':','0'
data ends
code segment
 start:        mov ax,data
        mov ds,ax
        mov bx,0
        mov ax,0b800h
        mov es,ax
        mov di,10*160+32*2
        mov cx,11
     s:         push cx
        mov al,[bx]
        cmp al,47
        ja s0
    
    s1:        mov byte ptr es:[di+4],a...
阅读全文 | 评论次数(1) | 浏览次数(611) | 所属类型(默认类型)

[2008-04-14 15:55] debug下输入MOV  AX,DS:[0]

debug中测试的时候不要输入DS后面的“:”号!...
阅读全文 | 评论次数(2) | 浏览次数(689) | 所属类型(默认类型)

[2008-04-14 14:28] 高手笔记【6】

在Intel8086环境下,对指令mov ax,[bx]描述错误的是_____。 4 
 1、 指令中,源操作数的段地址默认为ds中的内容  
 2、 指令中,源操作数的偏移地址为bx中的内容  
 3、 指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)  
 4、 指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah)  


assume cs:code  
    code segment  
    start:mov ax,code  
    mov ds,ax  
    ...
阅读全文 | 评论次数(1) | 浏览次数(594) | 所属类型(默认类型)

[2008-04-14 13:02] 高手笔记【5】

实验4

如此编程

assume cs:code 
code SEGMENT 
    mov bx,0 
    mov cx,64 
    mov ax,0020h 
    mov ds,ax 
         
  s:mov [bx],bx 
    inc bx 
    loop s 
     
    mov ax,4c00h 
    int 21h 
     
code ENDS 
end 

1.结果正确不代表过程正确。 

逻辑错误很多时候会成长为致命错误。

2.带[]的寄存器名称在80x86中只能是作为基址...
阅读全文 | 评论次数(0) | 浏览次数(683) | 所属类型(默认类型)

[2008-04-10 20:44] 高手笔记【4】

cs ds ss区别

这三个段地址都可以指向任何空间(不考虑程序运行结果)。但是,cs是代码段寄存器,cs:ip共同指向的数据被cpu看做是程序指令,也只有这些指令才能得到运行,也就是我们通常意义上的程序;ds一般指向数据,没有什么特殊的意义;而ss是栈的段地址,ss:sp共同作用,进行栈操作后的栈空间的定位。 
替换使用大体上说是不行的。因为cs和ss都有默认行为的,cpu运行就会自动使用这些寄存器,而ds的要求就要灵活一点了。...
阅读全文 | 评论次数(1) | 浏览次数(685) | 所属类型(默认类型)

[2008-04-07 21:18] 高手笔记【3】

若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。  
 1、 0000H  
 2、 0001H  
 3、 FFFFH  
 4、 FFFEH  

KEY:栈的sp指向栈顶的下一存储单元,所以,要使用整个段,理论上指向的位置应该是(FFFFH+1H),我们知道这样的话超过了段的最大值FFFFH,因此,出现了【段内环绕】,所以此时sp指向了0H的位置。...
阅读全文 | 评论次数(1) | 浏览次数(628) | 所属类型(默认类型)

[2008-03-31 21:16] 高手笔记【2】

下列关于8086CPU的工作原理的描述错误的是_____。  
 1、 汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。  
 2、 CPU在访问内存时,采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。  
 3、 任意时刻,CS:IP指向的内容即是此刻CPU正在执行的指令。  
 4、 传送指令能够更改所有通用寄存器的内容。  

4是正确的,CS,IP并不是通用寄存器,通用寄存器只包括(AX、BX、CX、DX) 
3的描述是错误的,因为当CPU取指到指令缓存器后,CS,IP就自动指向下一条指令,然后CPU再执行刚取到指令缓存器的指令,并不是当...
阅读全文 | 评论次数(3) | 浏览次数(691) | 所属类型(默认类型)

[2008-03-27 21:32] 高手笔记【1】

(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是:最小为(),最大为()  
个人的想法是,假设SA为最大,EA为0,那么经过X16移位后,可以推断出基础地址=物理地址 那么就可以得到最大的SA=2000H 但是在计算最小值的时候 我就遇见了麻烦 假设SA为最小,也就是0(0是任何自然数的倍数),所以得到的SA就为0000H,但是这个与参考答案上的1001H有很大的差异,不知道是否是我的哪个知识点没有思考到,或者哪个环节没记忆清楚,谢谢指教。 
 
 
想想,如果SA为0000H,那么再给一个偏移地址是多少,我们才能使最终的...
阅读全文 | 评论次数(0) | 浏览次数(588) | 所属类型(默认类型)