• 汇编语言读书笔记(三)


    关于本次阅读后的思考

     第七章

    各个寄存器之间的区别是什么?

    个人理解:寄存器都是存放内存地址的一个16位的容器,仅仅从用途上可以区分为一般存储功能及特殊功能,

    例如CS是指向代码段的寄存器,CX的值会随着LOOP循环指令的执行自动-1

    SP会随着栈的PUSH和POP从而+-2等等

     第八章

    获取数据的长度

    mov ax xx---- 1 word

    mov al XX ----- 1byte

    mov byte ptr   ---1byte

    mov word ptr -----1word

    随后的汇编笔记不再更新详细,大多都是语法上的说明而已,我的本意是为了解计算机原理为目的进行学习,所以汇编的语法并不重要。

    第七章 灵活定位内存地址

    定位内存地址的几种方式

     1 8086CPU中只有BX,SI,DI,BP可以放入[]中进行寻址,,例如[AX]就是错误的

     2 BX+SI/DI+IDATA;  BP+SI/DP/DI+IDATA

    小总结 BP+BX组合是不行的,SI或者DI一定要依靠BX或者BP才能组合,idata随意组合

    [BX+idata][BX+DI+idata][BX+SI+idata]

    [BP+idata][BP+DI+idata][BP+SI+idata]

    [bx],[bp],[si],[di],[idata]

    ...

    第八章 数据处理的两个基本问题

    reg/sreg

    reg表示寄存器 ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,cl,sp,bp,si,di

    sreg表示段寄存器 ds,cs,ss,es

    BP寄存器

    mov ax,[bp] 含义默认为(AX)=((SS)*16+(BP)) 

    段地址默认是SS

    指令获取数据的地址

    1 mov bx,[0] 获取数据的地点是内存--地址是ds:0的内存单元

    2 mov bx,ax 获取数据的地点是CPU内部--AX寄存器

    3 mov ax,1 获取数据的地点是CPU内部--指令缓冲器

    获取数据的长度

    mov ax xx---- 1 word

    mov al XX ----- 1byte

    mov byte ptr   ---1byte

    mov word ptr -----1word

    div指令

    格式 

    div reg

    div 内存单元

    由于除数分为16,32位所以需要1个或者2个寄存器

    16位则是AX---AL,AH

    32位是AX,DX

    div byte ptr ds:[0]

    (al)=(ax)/(ds:[0])求商

    (ah)=(ax)/(ds:[0])求余数

    div word ptr ds:[0]

    (ax)=(dx)/(ds:[0])求商

    (dx)=(dx)/(ds:[0])求余数

  • 相关阅读:
    Cocoa中对日期和时间的处理 NSCalendar (一)
    iOS优秀博客收录
    八大排序(内容是转载链接)
    IOS8定位无效问题
    ios 里如何判断当前应用的定位服务是否可用
    MKMapView和MKMapViewDelegate
    根据经纬度翻译成详细位置的各种方法
    iOS 根据经纬度反查 地名
    MapKit学习笔记
    解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated
  • 原文地址:https://www.cnblogs.com/sunfan1988/p/3537886.html
Copyright © 2020-2023  润新知