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

我的博客

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

[2010-01-24 22:59] 检测点9的一道题

点击查看原图
好险啊,差点就被迷惑了。
此题的关键考点是:loop s 这句。
应为loop指令时循环指令,所以这条指令转移地址的产生是通过位移量来产生的,此时的位移量为-5,当把这条指令复制到s3处时候,由于-5的位移量所以当执行s3处的loop 指令时,会跳转到s2处,自己可以算下位移量是否为-5,呵呵 这道题很考人啊。
(因为s,s1,s2,s3这些标号是给编译器去处理的,所以在程序执行过程中去修改代码只根据目标程序去)

最后答案选什么呢?自己算下哦,不方便透露哦!...
阅读全文 | 评论次数(0) | 浏览次数(580) | 所属类型(汇编要点)

[2010-01-24 22:47] 第9章跳转和实验9

点击查看原图
⒈先说下Jmp指令:
  Jmp指令从大的来分可以分为 ⑴.段内转移 ⑵断间转移
  而断内转移又可以分为①断内短转移 short ②段内近转移near
  断间的转移即为远转移 far
 从得到的新的CS:IP的方式来看Jmp指令可以分成:
  ⑴通过偏移量来得到新的地址,通过标号形式的段内转移都属于这种方式
  ⑵直接给出IP后CS:IP, 可以通过寄存器和内存单元来给出地址
 在转移指令中有条件转移指令和循环指令都属于短转移,都是通过位移量来形成新地址的
2.再来说下实验9吧,以下是我解决此题的思路:见笑了
 ⑴先从题目给出的内容中得到以下信息:
   在DOS中,屏...
阅读全文 | 评论次数(0) | 浏览次数(554) | 所属类型(汇编要点)

[2010-01-20 11:16] P命令

* P[=地址] [数据] 进程命令
  功能: 将一个子程序调用指令,循环指令,中断指令或一个重复字符串指令,停止在下一条指令上。
  说明: 在执行一条子程序调用指令,循环指令,中断指令或一个重复字符串指令时,发出P命令去执行有关指令,并且返回到要执行的下一条指令。 P命令和T一样选用来跟踪程序运行过程用的命令,我们可以在P命令中指定程序运行的起始地址,指令个数,如未指定则CS:IP所指定程序的地址开始一次运行一条令。
  P与T命令的差别在于P命令把CALL/INT当成一条指令来执行,简化了跟踪过程,P命令只运行RAM内存的命令,而T命令则可运行RAM和ROM里的程序。...
阅读全文 | 评论次数(1) | 浏览次数(670) | 所属类型(汇编要点)

[2010-01-20 10:33] 第5章

点击查看原图
1.loop指令的执行步骤:
     1.CX-1->CX
     2.判断cx是否为0,若不为0,跳转到标号所在位置执行;若为0 则执行loop指令后的那条指令
所以在进入循环前要设置循环次数,即给CX赋值,循环执行次数等于CX的值。
思考:若开始时候给cx赋值为0,循环会执行多少次?
回答:第一次执行loop时候,CX-1,则cx=0-1=0ffffH 所以循环执行此时为0ffffh+1 次。
2.在汇编的源程序中为了把数据和地址区分开来,同一规定数据的最高位不能为字母。所以ffffh在源程序中要写成0ffffh,否则编译器会报错。...
阅读全文 | 评论次数(0) | 浏览次数(558) | 所属类型(汇编要点)

[2010-01-19 18:34] 实验3要点(转)

王爽老师汇编语言支持网站http://www.asmedu.net/里面有详细讨论.
这是我转抄的请参考:
问题1、TT单步执行 pop ax 时,出现 NTVDM CPU 遇到无效指令 对话框。为什么?如何解决?   
----------------------------------------------------------------------------------------- 
在windows系列操作系统环境下,我们进入的cmd或command都是工作在保护模式下的DOS操作系统的虚拟机,在保护模式下,windows操作系统要对程序执行的优先权以及程序访问内存空...
阅读全文 | 评论次数(0) | 浏览次数(829) | 所属类型(汇编要点)

[2010-01-18 15:27] 内存地址分配

点击查看原图
8086的内存地址分配如图所示:
单电脑开机,CPU刚开始工作时候,CS=F000H,IP=FFF0H,所以开机执行的第一条指令的地址为 EA=FFFF0H。
在图中可以看到这个地址所在的内存的空间为ROM,也就是BIOS所在的内存部分,这条指令是一个跳转指令,跳到BIOS的自检程序所在的地址。...
阅读全文 | 评论次数(0) | 浏览次数(695) | 所属类型(汇编要点)

[2009-11-15 17:40] 第五章小知道点。

DEBUG中将 MOV AX,[0] 解释为 MOV AX,DS:[0000]
而在宏汇编中将其解释为  MOV AX,0 (立即数)
要想在宏汇编中实现和DEBUG中一样的功能,可以将代码改写为 MOV AX,DS:[0]....
阅读全文 | 评论次数(2) | 浏览次数(680) | 所属类型(汇编要点)

[2009-11-15 10:38] 递归的求1~100的和。

DATA SEGMENT
        N DW 100
        RESULT DW ?
DATA ENDS
STACK SEGMENT
         DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
        ASSUME CS:DATA,DS:DATA 
START:MOV AX,DATA
        MOV DS,AX
        MOV AX,N
        CALL SUM
        MOV AH,4CH
        INT 21H
        
SUM PROC
        PUSH AX
        DEC AX
        CMP AX,0
        JNE LP2
LP1:POP AX
        ADD RESULT,AX
        RET
LP2...
阅读全文 | 评论次数(1) | 浏览次数(625) | 所属类型(汇编要点)

[2009-11-13 21:42] 关于程序开始时DS和CS

当刚开始对一个程序进行DEBUG时,在执行断装填之前,系统会将DS指向系统默认的地方,而CS则指向代码的开始位置。数据段真正开始的位置是DS现在所指向的地址再加上10H(前256个字节为描述区),断的装填也正是将DS指向这个位置,也是开始放数据的地方,堆栈段不用写代码进行装填,DOS会默认填入。...
阅读全文 | 评论次数(1) | 浏览次数(692) | 所属类型(汇编要点)

[2009-11-13 21:34] 求1!+2!+......+5!

DATA SEGMENT 
        SUM DW 0
DATA ENDS
CODE SEGMENT
        ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
        MOV DS,AX
        XOR AX,AX
        MOV CX,5
LOP1:CALL FACT
        ADD SUM,AX
        LOOP LOP1
        MOV AH,4CH
        INT 21H
        
FACT PROC
        PUSH CX
        MOV AX,1
LOP2:MUL CL
        LOOP LOP2
        POP CX
        RET
FACT ENDP
CODE ENDS
        END STAR...
阅读全文 | 评论次数(0) | 浏览次数(424) | 所属类型(汇编要点)
『 查看更多文章 』