zoukankan      html  css  js  c++  java
  • 【汇编语言(第3版)王爽】第八章学习内容

    1. 只要在[]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中。
      1. mov ax,[bp] 含义:(ax) = ((ss)*16+(bp))
      2. mov ax,[bp+idata] 含义:(ax) = ((ss)*16+(bp)+idata)
      3. mov ax,[bp+si] 含义:(ax) = ((ss)*16+(bp)+(si))
      4. mov ax,[bp+si+idata] 含义:(ax) = ((ss)*16+(si)+idata)
    2. 寻址方式:
      1. 直接寻址:
        1. 表达式: [idata]
        2. 直接根据常量寻址,在C语言中表示为arr[0]
      2. 寄存器间接寻址:
        1. 表达式:[bx]、[si]、[di]、[bp]
        2. 根据寄存器的数据寻址,在C语言中表示为arr[i]
      3. 寄存器相对寻址:
        1. 表达式:[bx+idata]、[si+idata]、[di+idata]、[bp+idata]
        2. 根据寄存器和常量寻址,在C语言中表示为arr[i+10]
      4. 基址变址寻址:
        1. 表达式:[bx+si+idata]、[bx+di+idata]、[bp+si+idata]、[bp+di+idata]
        2. 根据两个寄存器和一个常量寻址,在C语言中表示为arr[i+j+5]
    3. 要操作的数据的长度:
      1. 如果操作符两边有寄存器,以寄存器的大小确定操作的是字还是字节。
      2. 如果没有寄存器,可以自行指定:
        1. mov word ptr [2],1
        2. mov byte ptr [2],1
      3. 有些指定默认指定了访问的是字还是字节:
        1. 比如push [1000h]默认操作的是字。
    4. div指
      1.   
    1. data segment中:
      1. db(data byte)定义的是字节型数据,每1个数据占1个字节。
      2. dw(data word)定义的是字型数据,每1个数据占1个字,即2个字节。
      3. dd(data double word)定义的是双字型数据,每1个数据占2个字,即4个字节。
    2. 问题8.1
    assume cs:codesg, ds:datasg
     
    datasg segment
    dd 100001
    dw 100
    dw 0
    datasg ends
     
     
    codesg segment
    start:
    mov ax,datasg
    mov ds,ax
    mov dx,ds:[2] ;注意高位在低位后面
    mov ax,ds:[0]
    div word ptr ds:[4]
    mov ds:[6],ax
     
     
    codesg ends
    end start
  • 相关阅读:
    Spring → 01:概述
    获取html中所有img
    设置app的语言
    iOS UITableview 图片懒加载demo
    获取UIWbview中的所有图片
    objective C socket 库
    UITableView 索引的设置
    objective c md5 sha1 sha256 AES加密库
    UITableviewCell 横滑出现多个按钮的三方库
    iOS微信朋友圈 评论点击姓名功能 (补充)
  • 原文地址:https://www.cnblogs.com/zhangjiuding/p/8318995.html
Copyright © 2011-2022 走看看