汇编语言中将数据、代码、栈放入不同的段

数据、代码、栈放入不同的段

在学习汇编语言,将数据、代码、栈放入不同的段。参考王爽老师的第四版,对P133的汇编代码,进行了个人理解标注。仅供参考,存在错误之处,请大家斧正。

assume cs:b, ds:a, ss:c; // 代码段cs、数据段ds、栈段ss

a segment 
	dw 0123h,0456h,0789h,abcdh,0defh,0fedh,0cbah,0987h // 共8个字
a ends

c segment
	dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // 共16个字
c ends

b segment 
d : mov ax,c // 初始栈段,C段当作栈空间
	mov ss,ax // ss:sp指向C:20
	mov sp,20h

	mov ax,a // 初始数据段a	
	mov ds,ax  // ds指向a段
	
	mov bx,0 // 该小段代码为数据入栈
	mov cx,8 // ds:bx 指向a段第一个单元
  s:push [bx] // (0-15单元)依次入栈 
   	add bx,2
  	loop s 	
  	
  	mov bx,0 // 该小段代码为数据出栈
  	mov cx,8
  s0:pop [bx]
    addd bx,2
    loop s0

	mov ax,4c00h // 程序结束的标志
	int 21h
b ends
end d 	
上一篇:实验2 多个逻辑段的汇编源程序编写与调试


下一篇:大学《汇编语言》(王爽) 实验十三 编写、应用中断例程