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

知识点

  • 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


你可能感兴趣的:(汇编语言,汇编)