LAB4
(1)
编程, 向内存0:200 ~ 0:23F 依次传入数据 0 ~63
assume cs:code
code segment
mov bx,200
mov ax,0
mov cx,64
s:mov 0:[bx],ax
inc bx
inc ax
loop s
mov ax,4c00h
int 21h
code ends
end
(3)
下面程序的功能是将”mov ax,4c00h” 之前 的指令复制到内存 0:200 处,补全程序. 上机调试
assume cs:code
code segment
mov ax,___ (cs)
mov ds,ax
mov es,ax
mov bx,0
mov cx,___ (12h)
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
分析:
- 复制的肯定是二进制代码嘛, 哪里的呢? 这串代码本身白, 这串代码本身在哪? CS段yes!
- 所以就是把CS:[bx]里的内容复制, bx截止于mov ax,4c00h前一行
给cx填了20 用debug测试一下 有多大
哈哈, 有12h个存储单元
这个题主要是复习两个点:
- 代码也是二进制数据, 只不过CPU以什么样的视角看他
- 一段程序加载进去, 加载到了 DS为段地址的那块内存, 而程序在dx+10h的CS段地址