青春纸盒子

文: 芦苇

你喜欢我笑的样子

我靠上了落寞的窗子

晚风吹起了我的袖子

明月沾湿了你的眸子


转身,你走出了两个人的圈子

树影婆娑,整座院子


挽起袖子

回头,把揽你忧伤一地的影子

装进,青春,这纸盒子


更多代码请关注我的微信小程序: "ecoder"

luwei0915

导航

09_CPU从内存中读取数据

# 数据的长度
    byte = 8bit                 字节型数据
    word = 2byte = 16bit        字型数据
    一个word需要2个连续的内存单元来存放, 高位地址存放高位字节, 低位地址存放低位字节
    如: 
        内存单元存放 4E20
        0 -> 20
        1 -> 4E
        2
        3
        4
        5
        6
        7

# 数据的读取: 
    需要地址信息: 段地址 + 偏移地址
    DS ES SS CS  = 073F(H)  段地址寄存器,保存的是段地址信息
    
    练习: 从段地址 + 偏移地址中读取数据
    -r es\n 0
    -r ss\n 0
    CS 跟 IP 搭配, 可以不用改
    -d 2000:0                          查看段地址偏移地址中的内容
    -e 2000:0 11 22 33 44 55 66 77     修改段地址中偏移地址的内容         
    mov bx,2000H                       修改BX值
    mov ds,bx                          修改段地址为20000
    mov al,ds:[0]                      从段地址(2000) 偏移地址(0) 中读取一个字节的内容 // ds: 不用写
    mov cx,ds:[2]                      从段地址(2000) 偏移地址(2) 中读取一个字的内容   // ds: 不用写

  
    

练习:
    1. 内存中的情况如图所示, 指令执行后寄存器中的内容
    题目:                    地址单元   数据                    解析:
    mov ax,2000H             20000H    23H                     AX = 2000H
    mov ds,ax                20001H    11H                     DS = 2000H
    mov ax,ds:[0]            20002H    22H                     AX = 1123H
    mov bx,ds:[2]            20003H    66H                     BX = 6622H
    mov cx,ds:[1]                                              CX = 2211H
    add bx,ds:[1]                                              BX = 6622H + 2211H = 8833H
    add cx,ds:[2]                                              CX = 2211H + 6622H = 8833H

    2. 内存中的情况如图所示, 指令执行后寄存器中的内容
    题目:                    地址单元   数据                    解析:
    mov ax,2000H             20000H    23H                     AX = 2000H
    mov ds,ax                20001H    11H                     DS = 2000H
    mov ax,2C34H             20002H    22H                     AX = 2C34H
    mov ds:[0],ax            20003H    11H                     20000H = 34H  20001H = 2CH
    mov bx,ds:[0]                                              BX = 2C34H
    sub bx,ds:[2]                                              BX = 2C34H - 1122H = 1B12H
    mov ds:[2],bx                                              20002H = 12H  20003H = 1BH
 
    3. 写一段指令, 将连续的3个字型数据累加存放到AX中         -e 2000:0 12 34 99 88 FF EE   段地址的偏移地址数据
        20000H    12H    =>  3412H                    mov bx,2000                    BX = 2000H
        20001H    34H                                 mov ds,bx                      DS = 2000H 段地址是2000
        20002H    99H    =>  8899H                    mov ax,0                       AX = 0H
        20003H    88H                                 add ax,ds:[0]                  AX = 3412H
        20004H    FFH    =>  EEFFH                    add ax,ds:[2]                  AX = 3412H + 8899H = BCABH
        20005H    EEH                                 add ax,ds:[4]                  AX = BCABH + EEFFH = ABAAH
                                                                                          EEFFH
                                                                                         1ABAAH
 
    4. 偏移地址溢出的情况
       -e 2000:0 FF
       -d 2000:0
       mov bx,2000
       mov ds,bx
       mov al,10
       add [0],al           ds:[0] = FF + 10 = 10FH = 0FH               只取前2位
       -d 2000:0 F          查看
       -e 2000:0 EE FF
       add [0],bx           ds:[0] = FFEEH + 2000H = 11FEEH = 1FEEH     只取前4位

 

posted on 2022-03-23 08:24  芦苇の  阅读(179)  评论(0编辑  收藏  举报