作业3

操作码是E2,操作数是F2,IP = 1B
F2+1B = 0D(上溢)
所以跳转到CS:0D

操作码是E2 操作数是F0 IP是39
F0 + 39 = 29
所以跳转到CS:29

assume cs:code, ds:data

data segment
	db 'try'
data ends

code segment
	start:
	mov ax,0b800h
	mov es,ax	;显存的数据段
	
	mov ax,data  
	mov ds,ax	;字符串的数据段
	mov bx,0002H
	call ptrstring

	mov bx,1804H
	call ptrstring

	mov ah, 4ch
	mov si, 0
	int 21h
	
ptrstring:
	mov bp,bx
	mov si,0	
	mov bl, bh
	mov bh, 0
	mov ax, 160
	mul bx
	mov bx, ax
	mov ah, 0
	mov ax, bp
	mov ah, al
	mov cx,3	;字符串长度10位
	
	s:
	  mov al,ds:[si]  
	  inc si
	  mov es:[bx],ax
	  add bx,2

	loop s	
	ret
	
	mov ax,4c00h
	int 21h
code ends

end start

end

cs:code, ds:data

data segment
	stu_no db '201983290397'
	len = $ - stu_no
data ends

code segment
start:
	mov ax, 0b800H
	mov es, ax
	mov di, 160H
	mov si, 1
	mov cx, 24
	mov bx, 0
	mov ax, data
	mov ds, ax
s:  mov bp, cx
	mov cx, 80
s2: mov BYTE PTR es:[si], 16
	add si, 2
	loop s2
	mov cx, bp
	loop s
	mov cx, 34
	mov dx, 1
	sub si, dx
s3: 
	mov BYTE PTR es:[si], 45
	inc si
	mov BYTE PTR es:[si], 23
	inc si
	loop s3

	mov cx, 12
	
s4:	mov al, ds:[bx]
	mov es:[si], al
	inc si
	inc bx
	mov BYTE PTR es:[si], 23
	inc si
	loop s4

	mov cx, 34
s5: mov BYTE PTR es:[si], 45
	inc si
	mov BYTE PTR es:[si], 23
	inc si
	loop s5

	mov ah, 4ch
	int 21h
code ends
end start

posted @ 2021-12-02 21:36  wxhwqy  阅读(62)  评论(3)    收藏  举报