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

实验任务一

1.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

2.对ex1.asm进行编译

 

 3.进行连接

 

 4.运行结果

 

 5.debug调试的截图

d命令查看:

 

 u命令反汇编:

 

 g命令执行到第16行:

 

 实验任务二

1.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

2.编译、连接、运行:

 

 3.debug调试截图:

反汇编

 

调试

 

 

 

 4.比较区别

 

 

 

 实现的效果相同,具体实现上ex1直接编写,而ex2通过循环比较简便。

实验任务三

1.ex3.asm源代码

assume cs:code
code segment
    mov ax,0b800h
    mov ds,ax

    mov bx,07b8h
    mov cx,16
s:    mov ax,0237h
    mov [bx],ax
    add bx,2
    loop s

    mov ax,4ch
    int 21h
code ends
end

2.运行结果

 

 3.改变后比较

0239h

 

 0437h

 

 高两位表示颜色,低两位表示数字。

实验任务四

1.源代码

assume cs:code
code segment
    mov ax,0020h
    mov ds,ax

    mov bx,0
    mov cx,64
s:    mov [bx],bl
    inc bx
    loop s

    mov ax,4c00h
    int 21h
code ends
end

2.编译、连接、运行完成

 3.调试

 

 

 

 实验任务五

1.源代码

assume cs:code
code segment
    mov ax,cs
    mov ds,ax
    mov ax,0020h
    mov es,ax
    mov bx,0
    mov cx,23
s:     mov al,[bx]
    mov es:[bx],al
    inc bx
    loop s
    mov ax,4c00h
    int 21h
code ends
end
程序入口为cs:0(ip=0),所以第一空处传递段地址为cs;
先将第二空位随便设为1,加载后观察mov ax,4c00h之前代码为0000~0016h,总长度为23。

2.

 

 

 

 

posted @ 2020-11-05 21:21  不见鹿  阅读(117)  评论(1)    收藏  举报