汇编笔记3(数据)

第7章(更灵活定位内存):

and ah,10011010B    与运算(一0则0)可以把操作位设为0(11111101把第7位设为0)

or ah,10010010B        或运算(一1则1)可以把操作位设为1(00000010把第7位设为0)

'......'的方式表示ASCII码给出

db '1234'   = db 31h,32h,33h,34h

[bx+idata]访问偏移地址   其他写法[idata+bx],idata[bx],[bx].idata,[bx][si],[si][bx](注意常数在后有.)

[bx+idata]方便数组访问,idata确定元素开头,dx作为相对地址变化。例:

[0+bx]    'abcde'                 0[bx]

[5+bx]    'fghij'                     5[bx]

si和di,作为bx的补充,性质相同

[bx+si+idata]类似[bx+idata]

需要暂存数据都采用栈的方法(ss栈段)

另:1.字母大小写相差20h

       2.利用and or 和第5位来决定大小写

      3.采用0[]  8[]这种形式可以只使用一个偏移寄存器提高效率

基础复习:

     1.一个内存单元8bit,表示为两位16进制数,一个字节8bit。

      2.不能直接把内存mov到内存

实际操作暴露的问题:

        1.能操作数值的就是几个寄存器,没有变量

         2.采用的寄存器不同(ax,al)一次读取的内存不同,地址所需偏移不同。

         3.tap和空格产生同样对齐效果但占用内存不同

         4.要双层循环应当先把cx临时存在其他地方(尽量不要在寄存器,栈),内层循环后再带回

第8章(数据处理):

reg表示寄存器,sreg表示段寄存器

[bx]寻址形式的只有bx,bp,si,di可用(8086),bx与bp,si与di不共存

bp默认段地址为ss,bx默认段地址ds。。。可以显式指定

数据位置:1.idata立即数 2.寄存器 3.内存

指明数据长度方法:

     1.根据转移的寄存器确定

     2.X ptr 例:inc word ptr [bx]

    3.命令默认:push字

数据操作过程:确定位置,确定类型(长度),修改

汇编上的结构体:bx定位整个结构体,idata定位某一数据项,si定位数组项元素

div:除法 被除数位数16(32),除数位数8(16)(div reg或者div 内存单元)

被除数为ax     除数为8位(决定类型),al存商,ah存余

被除数为 dx放高16位,ax放低16位      除数为16位(决定类型),ax存商,dx存余

dup:类型 重复次数 dup(重复内容)例:db 3 dup(1,2)===>db 1,2,1,2,1,2

实际操作的问题:

         1.div后面不能直接接除数,要存在寄存器中(除数位数由此决定)使用。

        2.一个偏移地址只决定一个内存单元

        3.出现结果不写入时,先检查分配内存是否包含

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,424评论 8 114
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,455评论 0 1
  • 一、基础知识 mov ax,bx把BX内容送到AX中。汇编语言有3类指令,汇编指令、伪指令,其他符号。CPU通过地...
    赤果_b4a7阅读 1,891评论 0 1
  • 指令是使计算机执行某种特定操作的二进制编码。8086 CPU指令系统有133条指令,通常分为数据寻址方式和程序寻址...
    刀月水阅读 1,663评论 0 1
  • 二十几年前,在成都工作的时候,因公路过重庆,在一个晚上游览过鹅岭,当时青春年少,无什么印象,城市也没这么漂亮,夜景...
    百何印象阅读 383评论 0 0