• 【汇编语言-王爽】第七章:更灵活的定位内存地址的方法


    知识点

    • and指令:逻辑与指令,按位进行运算。通过该指令可将操作对讲的相应位设为0。
    • or指令:逻辑或指令,按位进行运算。通过该指令,可将操作对象的相应位设为1。
    • A的ASCII码是41H,a的ASCII码是61H。换成二进制来看,除了第五位(从0开始计算)外,大写字母和小写字母的其他各位都一样。大写字母ASCII码的第5位为0,小写字母的第5位为1。
    • [bx+idata]也可以用来表示一个内存单元,常用格式可以写成 [200+bx]、200[bx]、[bx].200。
    • 此外,si和di是和bx功能相近的寄存器,可以用[bx+si]或者[bx+di]来表示地址,常用格式还包括 [bx][si]。
    • 更灵活的寻址方式还包括:[bx+si+idata]和[bx+di+idata]。

    实验6: 实践课程中的程序

    代码

    assume cs:codesg, ss:stacksg, ds:datasg
    
    stacksg segment
            dw 0,0,0,0,0,0,0,0
    stacksg ends
    
    datasg segment
            db '1. display      '
            db '2. brows        '
            db '3. replace      '
            db '4. modify       '
    datasg ends
    
    codesg segment
      start:mov ax,stacksg
            mov ss,ax
            mov sp,16
    
            mov ax,datasg
            mov ds,ax
            mov bx,0
            mov cx,4
    
         s: mov si,3
            push cx
            mov cx,4
    
        s0: mov al,[bx+si]
            and al,11011111b
            mov [bx+si],al
    
            inc si
            loop s0
    
            pop cx
            add bx,16
            loop s
    
            mov ax,4c00h
            int 21h
    
    codesg ends
    end start
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
  • 相关阅读:
    centos7安装mysql8
    JVM常用概念之扁平化堆容器
    mybatis02
    A2L文件内容详细解析
    缩点+图论路径网络流:1114T4
    支配树🌴学习笔记
    【Camera2 教程二】Camera2相机打开和关闭接口调用详细说明
    Spring Boot Actuator - Spring Boot 应用监控
    数据结构之顺序表
    七天.NET 8操作SQLite入门到实战 - SQLite 简介
  • 原文地址:https://blog.csdn.net/weixin_42294274/article/details/133972068