这个实验我做的时间比较久,现在才知道把push的用法没搞清楚(头秃)
我第一次代码的执行结果我都惊了(把我的眼睛闪的)
就把代码放这记录一下吧
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 2h,24h,71h
data ends
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov ax,stack
mov ss,ax
mov sp,16
mov bx,6e0h
mov si,0
mov cx,3
s: mov ah,ds:16[si]
push si
push cx
mov di,40h
mov si,0
mov cx,16
s1: mov al,ds:[si]
mov es:[bx+di],al
mov es:[bx+di+1],ah
add di,2
inc si
loop s1
pop cx
pop si
inc si
add bx,0a0h
loop s
mov ax,4c00h
int 21h
code ends
end start
执行结果
我也不明白为什么就直接在当前屏幕的中间