实验2 汇编源程序编写与汇编、调试

1.实验任务1

  • ex1.asm的源代码:

;ex1.asm
assume cs:code
code segment
mov ax, 0b810h
mov ds, ax

mov byte ptr ds:[0], 1
mov byte ptr ds:[1], 1
mov byte ptr ds:[2], 2
mov byte ptr ds:[3], 2
mov byte ptr ds:[4], 3
mov byte ptr ds:[5], 3
mov byte ptr ds:[6], 4
mov byte ptr ds:[7], 4

mov ah, 4ch
int 21h
code ends
end

  • 汇编、链接的命令及运行结果

 

 

 

 

  • 查看psp命令

 

  •  使用g命令

 

 

  • 使用u命令反汇编

 

 

  • 实验任务2
  • ex2.asm的源代码

; ex2.asm
assume cs:code
code segment
mov ax, 0b810h
mov ds, ax

mov bx, 0
mov ax, 101H
mov cx, 4
s: mov [bx], ax
add bx, 2
add ax, 101H
loop s
mov ah, 4ch
int 21h
code ends
end

  • 汇编、链接命令及运行结果

 

 

 

 

 

  •  使用u命令反汇编

  • debug截图 

 

 

 

  •  它们实现的是相同得功能和效果。编写ex1时将每个数逐次移进内存,编写ex2时使用了loop循环的方式。
  • 实验任务3
  • 源代码

;ex3.asm
assume cs:code
code segment
mov ax, 0b800h
mov ds, ax
mov bx, 07b8h
mov cx, 16
s: mov [bx], 0437h
add bx, 2
loop s
mov ah, 4ch
int 21h
code ends
end

  • 运行结果截图
  • 0239h

0437h

 

  • 根据显示的结果,高位字节存放的是图像的形状(在这一个例子中为某个数字),低位存放的是图像的颜色信息。
  • 实验任务4
  • 源代码:
  • assume cs:code
    code segment
    mov ax, 0
    mov ds, ax
    mov bx, 200h
    mov al, 0h
    mov cx, 40h
    s: mov [bx], ax
    add ax, 1
    add bx, 1
    loop s
    mov ah, 4ch
    int 21h
    code ends
    end

  • 调试过程
  •  

     

  • 结果,根据截图显示,确认将0-3F送入指定内存区域
  • 试验任务5
  • 源代码:
  • assume cs:code
    code segment
    mov ax,cs
    mov ds,ax
    mov ax,0020h
    mov es,ax
    mov bx,0
    mov cx,17h
    s: mov al,[bx]
    mov es:[bx],al
    inc bx
    loop s
    mov ax,4c00h
    int 21h
    code ends
    end

  • debug截图
  •  

     

  • 查看内存单元
  •  反汇编证明已经将代码复制到指定内存

posted @ 2020-11-04 21:25  candice12321  阅读(116)  评论(3)    收藏  举报