
汇编语言
deniece1
这个作者很懒,什么都没留下…
展开
-
汇编语言中断类型
0H 除以零 1H 单步(用于DEBUG) 2H 非屏蔽中断 3H 断点指令(用于DEBUG) 4H 溢出 5H 打印屏幕 6H 保留 7H 保留 8259中断...转载 2019-12-13 11:32:02 · 2301 阅读 · 0 评论 -
seg是伪操作符,用来取后面符号的段地址
mov ax,seg area中的seg是什么意思? 可以写作mov ax,area吗?不可以,seg是伪操作符,用来取后面符号的段地址,如果不加seg则取其内容.mov dx,offset area则可以取得area的偏移地址。...原创 2019-12-13 11:11:06 · 5038 阅读 · 0 评论 -
汇编cli(Clear Interrupt,禁止中断、关中断,对应的sti是开中断)
CLI禁止中断发生,关中断STI允许中断发生,开中断这两个指令只能在内核模式下执行,不可以在用户模式下执行;而且在内核模式下执行时,应该尽可能快的恢复中断,因为CLI会禁用硬件中断,若长时间禁止中断会影响其他动作的执行(如移动鼠标等等),系统就会变得不稳定。在标志寄存器中中断标志清零的情况下,可以以“int ××”的形式调用软中断。STI(Set Interrupt) 中断标志置1指令 使...原创 2019-12-13 10:50:14 · 8904 阅读 · 1 评论 -
汇编伪指令EVEN(数据对齐的伪指令,使得下一个变量的起始地址是偶数字节的)
EVEN伪操作使下一个变量或指令开始于偶数字节地址。ALIGN伪操作为保证双字类型数组边界从4的倍数开始创造了条件。ALIGN: 指定对齐边界align 4 ;让下一个变量的起始地址保证是 4 的倍数EVEN 是偶对齐, 相当于 ALIGN 2以上参考了:https://www.cnblogs.com/del/archive/2010/04/06/1705795.html还可参考:关于汇...原创 2019-12-13 10:39:20 · 2910 阅读 · 0 评论 -
伪指令PAGE和TITLE说明
伪指令PAGE和TITLE 用来控制被汇编的程序的列表格式PAGE [length][name]指定列在一页上的最大列数和一行上最大的字符数PAGE 60,130 每页最多60列,每行130行字符TITLE text [comnent]标题 文本 注释TITLE Assemly 这是汇编程序转载于:https://www.cnblogs.com/pengshao/archive/20...转载 2019-12-13 09:37:38 · 1588 阅读 · 0 评论 -
键盘I/O中断调用(INT 16H)和常见的int 17H、int 1A H
键盘I/O中断调用有三个功能,功能号为0, 1, 2,且必须把功能号放在AH中。 (1)0号功能调用 格式:MOV AH, 0INT 16H功能:从键盘读入字符送AL寄存器。执行时,等待键盘输入,一旦输入,字符的ASCII码放入AL中。若AL=0,则AH为输入的扩展码。 (2)1号功能调用 格式:MOV AH, 01HINT 16H功能:用来查询键盘缓冲区,对键盘扫描但不等待,并设置...转载 2019-12-08 18:35:11 · 7009 阅读 · 3 评论 -
汇编中的变量也可以用LABEL或EQU来定义吗?(可以)
EQU汇编语言中equ 定义一个常量。a equ 12相当于C语言中的#define a 12;相当于C++中的const int a=12;EQU定义的是常量LABELLABEL的功能是定义“变量或标号的类型”,而变量或标号的段属性和偏移属性由该语句所处的位置确定。(当然,在label这一条语句的同时,也定义了一个变量或者标号)例如: Buffer1 LABEL WORD...原创 2019-12-01 11:31:57 · 1497 阅读 · 0 评论 -
标号的类型是near还是far有什么区别,作用是什么?
汇编 定义过程时,near和far有什么作用?答:这个主要和两个指令有关call retcall 一个near过程,只把偏移地址压入堆栈,过程返回时用retn返回call一个far过程,把偏移地址和段地址入栈,过程返回时用retf返回在过程中的ret指令根据near和far的不同,分别编译成retn和 retfretn和retf的机器码是不同的,你也可以不定义过程,直接用retn和ret...原创 2019-11-23 14:42:23 · 4788 阅读 · 0 评论 -
汇编中的LABEL详解
LABEL 伪指令可以插入一个标号,并定义它的大小属性,但是不为这个标号分配存储空间。LABEL 中可以使用所有的标准大小属性,如 BYTE、WORD、DWORD(双字)、QWORD(四字) 或 TBYTE。LABEL 常见的用法是,为数据段中定义的下一个变量提供不同的名称和大小属性。如下例所示,在变量 val32 前定义了一个变量,名称为 val16 属性为 WORD:.dataval16...原创 2019-11-23 14:37:53 · 12231 阅读 · 0 评论 -
汇编: mul乘法指令(字乘法结果在dx:ax中,8位乘法:一个乘数默认放在al中)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...转载 2019-11-21 09:17:59 · 5798 阅读 · 0 评论 -
汇编--INT 10H功能
汇编–INT 10H功能 </h1> <div class="clear"></div> <div class="postBody cye-lm-tag"> INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文...转载 2019-11-13 09:57:57 · 6169 阅读 · 0 评论 -
汇编中的OFFSET(OFFSET为属性操作符,表示应该把其后跟着的符号地址的值(不是内容)作为操作数)
汇编中的OFFSET课本:p48OFFSET为属性操作符,表示应该把其后跟着的符号地址的值(不是内容)作为操作数。TABLE DW 10,20,30,40,50ENTRY DW 3……MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,[BX]注意:OFFSET就是取TABLE的偏移地址TABLE DW 10,20,30,40,50;第一句的解释:定义...原创 2019-11-06 14:23:23 · 37212 阅读 · 9 评论 -
汇编指令中的字母会区分大小写吗?(除了字符型数据,其他地方都不区分)
汇编不区分大小写,只有字符型数据或者字符串区分大小写。汇编语言的语句是不区分大小写的,编译软件会自动识别这些语句,但是汇编程序中用户定义的变量、标号等,将区分其大小写,编程时要注意这些区别,以免出错 。只有字符型数据才区分大小写,也就是说放在引号中的字符是以ASCII存储的,大写26个英文字母的ASCII为41H-5AH,小写26个英文字母的ASCII为61H-7AH;而其它地方的英文是不区分...原创 2019-11-06 14:19:11 · 4227 阅读 · 0 评论 -
汇编中的word ptr
ptr – pointer (指针)缩写。汇编里面 ptr 是规定的字 (保留字)。mov ax,bx ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,不用wordmov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出!...原创 2019-11-06 14:06:03 · 18590 阅读 · 0 评论 -
movsb movsw movsd 指令详解
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-10-20 18:36:32 · 648 阅读 · 0 评论 -
可以由指令直接指定的I/O端口数(一共256个,从0到255一共256个端口号)
I/O端口号通常是由DX寄存器提供,但有时也可以在指令中直接指定00H0FFH的端口号。计算时就是00~FFH的长度,共256个原创 2019-09-22 10:37:08 · 1201 阅读 · 0 评论 -
符号位标志(SF)为正时的PL是什么的缩写
PL应该就是positive的表示原创 2019-09-22 10:56:29 · 3139 阅读 · 0 评论 -
x86标志位符号表示(PF奇偶位)
偶数:even number奇数:odd number 或者 uneven numberPF一般在校验时用到所以,PE表示是偶数,PO表示是奇数原创 2019-09-22 11:02:34 · 3839 阅读 · 0 评论 -
汇编中的BP与SS组合时,BP里面放的到底是SS中的一个基地址的指针还是基地址本身?
这个问题应该没有意义,是自己没搞清指针和地址的关系,两者没有差别吧原创 2019-09-22 19:11:16 · 1374 阅读 · 1 评论 -
SS, SP, BP 三个寄存器的不同和应用
博客园 首页 联系 管理 订阅 <div class="blogStats"> <!--done-->随笔-861 文章-0 评论-344 </div><!--end: blogStats --> </di...转载 2019-09-22 19:12:52 · 8375 阅读 · 0 评论 -
汇编语言中,DS与BX有何区别?怎么搭配使用?(BX是通用寄存器)
首先注意:BX是一个通用寄存器,里面存放的不一定就是一个基地址,也可以放偏移量或者其他临时数据。通用寄存器:A/B/C/D X 4个,SP,BP,SI,DI 4个专用寄存器:SP,IP和FLAGS 3个16位寄存器。疑问:SP到底是通用寄存器还是专用寄存器?答:好像都可以,Intel为什么把SP设计成通用寄存器,这样我也觉得有些奇怪。SP除了作栈顶指针外,你还可以用SP来完成加减乘除等...原创 2019-09-22 19:46:58 · 9528 阅读 · 0 评论 -
汇编语言中的乘除法用到的寄存器问题(较详细解析)(用到AX和DX,乘数和除数用其他寄存器和存储器)
汇编16位除法,默认被除数 DX-AX 商 AX 余数 DX,请问如何向AX-DX中传递被除数?答:DX放高16位,AX放低16位是32位除以16位的下面计算100001/100100001转为十六进制 186A1Hmov dx,1mov ax,86A1H; (dx)*10000H+(ax)=186A1Hmov bx,100div bx;除数为bx,16位,所以进行的是32位除以1...原创 2019-09-22 20:25:09 · 3546 阅读 · 0 评论 -
指令和伪指令的区别
指令是控制程序运行时的机器代码运作的,伪指令不直接控制运行时刻的机器,但是控制翻译程序如何生成机器指令代码。伪指令:由汇编程序在汇编过程中执行的指令。翻译程序:包括汇编程序,解释程序和编译程序。...原创 2019-09-22 20:46:14 · 2135 阅读 · 0 评论 -
MASM5.0汇编环境安装
原 MASM5.0汇编环境安装 ...转载 2019-09-20 18:14:08 · 2949 阅读 · 0 评论