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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  在没有结果之前,千万不要放弃努力,因为结果未知,努力过了,即使失败了也不后悔,否则中途放弃只能是无尽的悔恨。
  • 『姓名』:王平
  • 『性别』:男『发送消息
  • 个人说明:一个人的失败是正常的,一个人的成功有2分努力,3分人脉加上5分运气和机遇,这里的2分努力是全力以赴,如果自我放弃随波如流,成功看起来离你很近,但是就是差那么0.1分,所以一定要全力以赴
  • 详细信息『加为好友』
学习动态
友情链接

[2009-04-01 16:55] DOS系统功能调用与BIOS中断调用 (转载)

DOS系统功能调用与BIOS中断调用 
一、DOS系统功能调用

1、什么是DOS系统功能调用
系统功能调用是DOS为用户提供的常用子程序(80多个),可在汇编语言程序中直接调用。这些子程序的主要功能包括:
(1)设备管理(如键盘、显示器、打印机、磁盘等的管理)
(2)文件管理和目录操作
(3)其他管理(如内存、时间、日期等管理)
这些子程序给用户编程带来很大方便,用户不必了解有关的设备、电路、接口等方面的问题,只需直接调用即可。

2、调用方法
DOS功能调用的子程序已按顺序编号——功能号(00H~68H),其调用方法是:
(1) 功能号→AH
(2) 入口参数→指...
阅读全文 | 评论次数(1) | 浏览次数(2043) | 所属类型(转载和记录的汇编知识)

[2009-03-27 14:07] 推荐博文 汇编指令的英文全称(转载)

汇编指令的英文全称

        如果你想写系统软件,两本入门书籍--谭浩强的《C语言程序设计》和王爽的《汇编语言》是必看的。谭老的C语言已相当成熟,王老师的汇编倒有个小缺陷—指令没有英文全称,或许他认为现在学编程的朋友都不记单词,如同新生代作家看不懂英文原著一般。不过我觉得记住指令的英文全称,就不容易搞混,印象会更深刻,所以我把王爽书中出现的英文缩写的全称罗列出来,以便入门的朋友更好地记住它们。 

8086CPU提供以下几大类指令。 

一、数据传送指令 
比如,mov(move)、push、pop、pushf(push flags)、popf(pop flags)、xc...
阅读全文 | 评论次数(9) | 浏览次数(3380) | 所属类型(转载和记录的汇编知识)

[2009-03-27 14:06] 各种寄存器的英文全称

下面是我从网上收集的一些我们常用的寄存器的英文全称和汉语,希望对大家的理解和记忆使用有好处
AH&AL=AX(accumulator):累加寄存器 
BH&BL=BX(base):基址寄存器 
CH&CL=CX(count):计数寄存器 
DH&DL=DX(data):数据寄存器 
SP(Stack Pointer):堆栈指针寄存器 
BP(Base Pointer):基址指针寄存器 
SI(Source Index):源变址寄存器 
DI(Destination Index):目的变址寄存器 
IP(Instruction Pointer):指令指针寄存器 
CS(Cod...
阅读全文 | 评论次数(0) | 浏览次数(964) | 所属类型(转载和记录的汇编知识)

[2009-03-24 23:34] 汇编错误集锦

0
Block nesting error
嵌套出错.嵌套的过程,段,结构,宏指令或重复块等非正常结束.例如在嵌套语句中有外层的结束语句,而无内层的结束语局
1
Extra characters on line
一语句行有多余字符,可能是语句中给出的参数太多
2
Internal error-Register already defined
这是一个内部错误.如出现该错误,请记下发生错误的条件,并使用Product Assistance Request 表与Microsoft公司联系
3
Unkown type specifer
未知的类型说明符.例如类型字符拼错,把BY...
阅读全文 | 评论次数(1) | 浏览次数(1134) | 所属类型(转载和记录的汇编知识)

[2009-03-23 10:07] 一点点简单的了解

点击查看原图
突然对汇编里面的进制开始有点怀疑,于是编制了一个小程序看看,那个在汇编程序中如果我不加上,例如12h,10B的话,是不是编译器按照10进制计算?那么直接在dos窗口下是不是就是直接按照16进制计算的?
   程序如下:
assume cs:code
  code segment
    mov ax,0
    mov cx,3
    s: 
      add ax,100
     loop s
   
   mov ax,4c00h
   int 21h
  code ends
end
    通过运行发现就是在汇编程序下如果不加以说明H、B,编译器是按照1...
阅读全文 | 评论次数(2) | 浏览次数(300) | 所属类型(转载和记录的汇编知识)

[2009-03-21 00:42] 关于assume的用法再讨论升级

dos下连编生成的汇编程序有两种,扩展名分别为com和exe。com程序是纯cpu指令和数据,在磁盘上放着的com文件和被加载到内存后内容是一样的,cpu按照IP指示的第一条指令开始执行。com程序只能在一个64K的段中执行,它的代码啊数据啊什么东西全都在这一个64K以内的段中。但是想想,程序功能多了,或需要的处理的数据多了,那这一个段怎么够用啊,于是有了exe文件。exe程序分成好多段,有放代码的,有放数据的,那好这么一个exe程序连编完成了,把它放到内存里运行,你想想这exe程序分了几个段,该用到哪个段时,程序是怎么找它们的地址呢?com文件好说,用哪谁就jmp过去了,反正就在一个64K的...
阅读全文 | 评论次数(0) | 浏览次数(291) | 所属类型(转载和记录的汇编知识)

[2009-03-21 00:42] assume的含义和用法

(1)定义:在数据段中定义的每一个变量标志符其实都代表了一个偏移量(也称为有效地址),这个偏移量与
数据段段值相结合就指向某个内存地址。在程序中使用ASSUME伪指令是用来指明一个默认的段地址。一旦你把某个数据段的段名指定给某个段寄存器(比如ASSUME   DS,DATA1),这之后当你使用这个数据段(DATA1)内定义的变量,编译程序就自动把它与这个段寄存器(DS)里的段值(表示一个段地址)结合起来使用。"

(2)例子
比如有   
  data   segment   
          hxn   db   1   
  data   ends   
    
 ...
阅读全文 | 评论次数(0) | 浏览次数(313) | 所属类型(转载和记录的汇编知识)

[2009-03-21 00:14] 关于  mov ax,4c00h int 21 h 的解释

mov ax,4c00h
  int 21h
21h中断调用是dos操作系统提供的服务功能调用,其中ah中放置功能号,al中放置参数,在上面这个问题中,ah = 4ch是功能号,表示程序运行结束,将控制权归还给操作系统,al = 00h在这里是返回给操作系统的错误代码,00h表示应用程序是正常结束,即没有发生错误。
中断21h调用提供了绝大部分需要使用的功能,例如论坛上“书痕”发的【一个很简单的字符串输入输出方法,可我就是搞不懂,望指教..】的帖中,使用ah = 0ah号功能来输入字符串,使用ah = 09h号功能来输出字符串。不同的功能号,需要的参数是不同的,有些功能号需要若干个参数。...
阅读全文 | 评论次数(0) | 浏览次数(322) | 所属类型(转载和记录的汇编知识)

[2009-03-20 17:54] 经常成对出现的寄存器(简化)

段寄存器cs-ip,ds-bx,ss-sp

ax为累加寄存器 常常用于运算
bx为基址寄存器 常常和ds成对使用起偏移位移指针作用
cx为计数寄存器 常常用于循环计数

在求地址的时候要注意:段寄存器*16+偏移位移;用16进制简易表示就是段寄存器的位置向左移一个单位与偏移位移相加。

注意栈中的一个元素如果使用dw声明则占有2个字节


32位CPU所含有的寄存器有:
 
4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 
6个段寄存器(ES、CS、SS、DS、FS和GS)
1个指令指...
阅读全文 | 评论次数(0) | 浏览次数(285) | 所属类型(转载和记录的汇编知识)

[2009-03-19 20:37] 汇编中得到程序的入口地址

比如我有这么个段定义 
code segment 

code ends 
那么在编译阶段是不是code的值是确定的呢?
code的值是加载的时候才确定的,exe程序有所谓的重定位表,该表中记录程序中使用code的地方,在加载时修正。...
阅读全文 | 评论次数(1) | 浏览次数(290) | 所属类型(转载和记录的汇编知识)
页码数(2):  1  2