汇编语言(王爽)实验4

(1)编程,向内存0:200~0:23f依次传送数据0~63.

assume cs:code

code segment
    mov ax,20H
    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

(3)程序功能是将"mov ax,4c00h"之前的指令复制到内存0:200处,补全程序:

;只写关键代码
;每次复制单字节数据,并通过al中转
;程序入口为cs:0(ip=0),所以第一空处传递段地址为cs
;接下来需要确定循环次数,即mov ax,4c00h之前的代码长度
;而程序总代码长度可通过debug加载后通过u命令看出
;先将第二空位随便设为1,加载后观察mov ax,4c00h之前代码为0000~0016h,总长度为23.
...
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
...

 通过"u 0:200"查看如下图:

原文地址:https://www.cnblogs.com/tsembrace/p/3251774.html