实验8 分析一个奇怪的程序

答案:cs:[si]复制了指令jmp short s1的机器码。其机器码为EBF6,代表从nop向前偏移-10个字节。在cs:[offset s]处,因为源程序基本一致,所以会偏移到程序开始时mov ax,4c00h处,使程序结束
实验9 根据材料编程


分析:
assume cs:code,ds:data
data segment
db 'welcome to masm!'
db 138,44,113
data ends
code segment
start: ;先将data段中的地址拷贝到ds中
mov ax,data
mov ds,ax
mov bx,0
;然后用es存储段地址B800
mov ax,0b800h
mov es,ax
;从0A0开始存放字符
mov si,06E0h
;将栈中最顶层的格式pop出来
mov ah,ds:[16]
;循环16次,将一行的数据都放入内存中
mov cx,16
s0: mov al,ds:[bx]
mov es:40[si],al
mov es:41[si],ah
add si,2
inc bx
loop s0
;显示第二行
mov bx,0
mov ah,ds:[17]
mov si,0780h
mov cx,16
s1: mov al,ds:[bx]
mov es:40[si],al
mov es:41[si],ah
add si,2
inc bx
loop s1
;显示第三行
mov bx,0
mov ah,ds:[18]
mov si,0820h
mov cx,16
s2: mov al,ds:[bx]
mov es:40[si],al
mov es:41[si],ah
add si,2
inc bx
loop s2
mov ax,4c00h
int 21h
code ends
end start