x86汇编学习-使用标号访问内存-14

84 阅读1分钟

标号的作用

标号可以表示离它最近的内存空间的地址

内存布局

捕获.PNG

代码

start:
	mov ax, 23333	; 被除数低16位
	xor dx, dx		; 被除数高16位
	mov bx, 10		; 除数=10
	
	div bx			; 执行除法
	mov dl, 0x30	; 数字转字符
	mov [0x7c00+buffer], dl	; 将余数存进内存
	xor dx, dx		; 清空 准备下次除法
	
	div bx
	mov dl, 0x30
	mov [0x7c00+buffer+1], dl
	xor dx, dx
	
	div bx
	mov dl, 0x30
	mov [0x7c00+buffer+2], dl
	xor dx, dx
	
	div bx
	mov dl, 0x30
	mov [0x7c00+buffer+3], dl
	xor dx, dx
	
	div bx
	mov dl, 0x30
	mov [0x7c00+buffer+4], dl
	xor dx, dx

; 在内存开辟5个字节的空间 类似数组 int arr[5];
; buffer表示这个空间的首地址 类似C语言中 &arr和&arr[0]的关系
buffer db 0, 0, 0, 0, 0

current:
	times 510-(current-start) db 0

db 0x55, 0xaa