实验四
- 1和2编程,向内存0:2000:23F依次传送数据063(3FH)
为什么0:200和0020:0表示的是同一段内存地址?
0000 X 16 + 0200 = 00200
assume cs:codes
codes segment
mov ax,0020h
mov ds,ax \\(ds)=0fffh
mov cx,64 \\循环64次
mov bx,0
s: mov ds:[bx],bl
inc bx \\(bx)=(bx)+1
loop s
mov ax,4c00h
int 21h
codes ends
end
运行过程
查看结果
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,17
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
大概如下。。。可能。。。
为什么cx = 17?
可以看到 “mov ax,4c00h”,之前的指令占用17h,23个字节
(1)复制的是"mov ax,4c00h"之前的指令的机器码,指令存放在cs:ip中,从cs:ip复制到es:bx处
吐了,为啥我的标签没有汇编语言