image.png
    一、and和or指令:
    1、and指令:
    逻辑与指令,按位进行与运算
    如:mov al,01100011B
    and al,00111011B
    结果 : al=00100011B
    2、or指令:
    逻辑或指令,按位进行或运算
    如:mov al,01100011B
    or al,00111011B
    结果 : al=01111011B

    二、ASCII码:
    ASCII 是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646

    三、以字符形式给出的数据:

    1. assume cs:code,ds:data
    2. data segment
    3. db 'unIX'
    4. db 'foRK'
    5. data end
    6. code segment
    7. start:mov al,'a'
    8. mov bl,'b'
    9. mov ax,4c00H
    10. int 21H
    11. code ends
    12. end start

    1、db ‘unIX’:
    相当于”db 75H,6EH,49F,58H”,”u”、”n”、”I”、”X”的ASCII码分别是75H,6EH、49H、58H

    四、[dx+idata]:
    [dx+idata]表示一个内存单元,它的偏移地址为(bx)+ idata (bx中的数值加上idata)
    mov ax,[bx+200]可以写成:mov ax,[200+bx]、mov ax,200[bx]、mov ax,[bx].200

    五、SI和DI:
    1、SI和DI是8086CPU中和bx功能相近的寄存器,但是SI和DI不能分成两个8位寄存器来使用
    2、以下三组指令实现相同的功能:
    ①、mov bx,0
    mov ax,[bx]
    ②、mov si,0
    mov ax,[si]
    ③、mov di,0
    mov ax,[di]
    3、以下三组指令实现相同的功能:
    ①、mov bx,0
    mov ax,[bx+123]
    ②、mov si,0
    mov ax,[si+123]
    ③、mov di,0
    mov ax,[di+123]
    4、[bx+si]:表示一个内存单元,它的偏移地址为(bx)+(si),即bx中的数值加上si中的数值
    5、mov ax,[bx+si]:表示将一个内存单元的内容送入ax,这个内存单元的长度为2字节
    6、mov ax,[bx+200+si]可以写成以下形式:
    mov ax,[200+bx+si]
    mov ax,200[bx][si]
    mov ax,[bx].200[si]
    mov ax,[bx][si].200
    注:数字在后要加”.”
    ,,
    五、不同的寻址方式:
    1、[iata]:用一个常量表示地址,可用于直接定位一个内存单元
    2、[bx]:用一个变量表示内存地址,可用于间接定位一个内存单元
    3、[bx+idata]:用一个变量和常量表示地址,可在一个起始地址的基础上用变量间接定位一个内存单元
    4、[bx+si]:用两个变量表示内存地址
    5、[bx+si+idata]:用两个变量和常量表示地址
    image.png