系统相关
首页 > 系统相关> > 灵活定位内存地址

灵活定位内存地址

作者:互联网

灵活定位内存地址,灵活应用

1.0 and和or指令

1.1 ASCII

1.2 以字符的形式给出数据集

1.3 大小写转换的问题

1.4 [bx+idata] [bx+SI+idata] [bx+DI+idata]

1.5 SI和DI

1.6 编程题

1.7 word ptr

1.8 寻址方式的综合应用

1.9 div指令

2.0 伪指令 DD dd

2.1 dup duplicate 复制

总结 实验

assume cs:code,ds:data,es:table,ss:stack

data segment
	db '1990','1991','1992','1993','1994','1995','1996','1997','1998','1999','2000'
	db '2001','2002','2003','2004','2005','2006','2007','2008','2009','2010'  ;最近21年的年份
	;计算年份的偏移地址 4*21=84  十六进制54H用53H
	dd 116,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,5840  ;21年每年的收入
	;计算收入的偏移地址 54H+54H=A8H  用A7H
	dw 1,6,9,12,113,6,9,12,113,6,9,12,113,6,9,12,113,6,9,12,50				;21年每年的人数
	;计算人数的偏移地址 A8H+2A=D2  用D1
data ends		

table segment
	db 21 dup('year summ ne !! ')
table ends

stack segment
	dw 8 dup('0')
stack ends

code segment
start:	mov ax, data
		mov ds, ax		;将ds和data挂钩
		
		mov ax, table
		mov es, ax		;将es和table挂钩
		
		mov bx, 0		;初始化参数
		mov si, 0
		mov di, 0
		mov cx, 21      ;设置循环次数21次
	s:	mov al, ds:[bx]		;存放年份
		mov es:[di], al
		
		mov al, ds:[bx+1]
		mov es:[di+1], al
		
		mov al, ds:[bx+2]
		mov es:[di+2], al
		
		mov al, ds:[bx+3]
		mov es:[di+3], al
		
		mov ax, [bx+54H]	;存放收入
		mov dx, [bx+56H]
		mov es:[di+5H], ax
		mov es:[di+7H], dx
		
		mov ax, [si+0A8H]	;存放人数
		mov es:[di+0AH], ax
		
		mov ax, [bx+54H]	;存放人均收入
		mov dx, [bx+56H]
		
		div word ptr ds:[si+0A8H]
		mov es:[di+0dH], ax
		
		add bx, 4
		add di, 16
		add si, 2
		loop s
		
		mov ax, 4c00H
		int 21H
code ends

end start

标签:定位,code,灵活,data,mov,al,ax,内存地址,bx
来源: https://www.cnblogs.com/immortal-mode/p/14106171.html