汇编语言_王爽 实验4 [bx]和loop的使用

汇编语言_王爽 实验4 [bx]和loop的使用

4.1

编程,向内存0:200~0:23F依次传送数据0~63(3FH)。

代码:

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

        mov bx,0

        mov cx,40h
     s: mov ds:[bx],bx
        inc bx
        loop s

        mov ax,4c00h
        int 21h

code ends
end
  • 0:200~0:23F可以看作是0020:0~0020:3F,所以把0020h传入寄存器ds
  • 传送数据0~63,需要进行64次循环,所以把40h传入寄存器cx

运行结果检查:
汇编语言_王爽 实验4 [bx]和loop的使用

4.3

补全程序,该程序实现的功能是将“mov ax, 4c00h”之前的指令复制到内存0:200处,补全程序,上机调试,跟踪运行结果。

代码:

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
  • CS为代码段寄存器,CPU将CS:IP指向的内容当作指令执行。
  • 循环次数的确定:
    通过debug该程序,观察到程序“mov ax, 4c00h”之前的指令占用的字节为0000h~0016h,作为中介的al可存一个字节,所以循环需要进行0017h次。
    汇编语言_王爽 实验4 [bx]和loop的使用

实验结果:
汇编语言_王爽 实验4 [bx]和loop的使用

上一篇:增量学习/训练


下一篇:段寄存器