(八)汇编语言——数据处理的两个基本问题

导读:本篇文章讲解 (八)汇编语言——数据处理的两个基本问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

 

目录

用于内存寻址的寄存器

bp

组合

两个基本问题

数据位置

立即数

寄存器

内存

数据长度

除法指令

dup指令

总结


        接下来,我们要处理的是有关数据处理的两个基本问题,那么这两个基本问题是什么呢?我们先告诉大家这两个问题,到时候再来慢慢解决:第一个就是我们要处理的数据在什么地方?第二个就是要处理的数据有多长?好啦,就让我们开始吧!

用于内存寻址的寄存器

        我们之前介绍过,8086一共有14个寄存器:

通用寄存器:AX、BX、CX、DX;
变址寄存器:SI、DI;
指针寄存器:SP、BP;
指令指针寄存器:IP;
段寄存器:CS、SS、DS、ES;
标志寄存器:PSW 
        之前介绍的是通用寄存器,但是我们用来寻址的寄存器有哪些呢?答案是只有bx、bp、si、di可以用在[…]对内存单元寻址,但是他们也不能乱用,我们接下来就来详细的介绍一下用法。

bp

        bp寄存器和bx寄存器是类似的,但是两者也有区别:bx默认指ds段;bp默认指ss段。但是呢,只需要在前面加上段地址即可改变。

组合

        这些寄存器的用法也不是可以乱用的,我们来看看,bx和bp只能搭配si和di来用,bx和bp,si和di不能组合,具体关系如下图所示:

(八)汇编语言——数据处理的两个基本问题

两个基本问题

        好啦,我们接下来就来介绍一下这两个基本问题:要处理的数据在什么地方?要处理的数据有多长?

数据位置

        我们在程序中,数据位置一般是由三个:立即数,寄存器,内存。

立即数

        对于直接包含在机器指令中的数据,称为立即数(idata),数据包含在指令中。

寄存器

        指令要处理的数据在寄存器中,在汇编指令中给出相应的寄存器名。

内存

       主要包括段地址(SA)和偏移地址(EA),指令要处理的数据在内存中,由SA:EA确定内存单元。

数据长度

        数据长度主要包括了字和字节。我们一般是用word ptr或byte ptr指明,在没有寄存器参与的内存单元访问指令中,用word ptr或byte ptr显性地指明所要访问的内存单元的长度是很必要的,否则,CPU无法得知所要访问的单元是字单元,还是字节单元。

除法指令

        div是除法指令,使用div作除法的时候,被除数:(默认)放在AX或DX和AX中,除数:8位或16位,在寄存器或内存单元中。总而言之,就是高位放余数,低位放商。

被除数 AX DX和AX
除数 8位内存或寄存器 16位内存或寄存器
AL AX
余数 AH DX

        我们来看一个例子,用div计算data段中第一个数据除以第二个数据后的结果,商存放在第3个数据的存储单元中。

// 数据段
data segment
dd 100001
dw 100
dw 0
data ends
// 代码段
mov ax,data
mov ds,ax
mov ax,ds:[0]
mov dx,ds:[2]
div word ptr ds:[4]
mov ds:[6],ax

dup指令

        其实dup指令的话,不难理解,但是却非常重要,dup和db、dw、dd等数据定义伪指令配合使用,用来进行数据的重复。我们举个例子就好了,比如你想定义一个容量为200字节的栈段,我们可能会这样去做:

// 不使用dup
stack segment
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
stack ends

        但是我们如果使用dup指令的话,代码就会变成下面这样。怎么样,是不是特别简介明了。好啦,关于dup指令我们就介绍这么多。

// 使用dup
stack segment
db 200 dup(0)
stack ends

总结

        状态恢复,继续学习,加油!!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82321.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!