摘要: (1)将下面程序保存为t1.asm,生成可执行文件t1.exe。assume cs:codesgcodesg segment mov ax,2000H mov ss,ax mov sp,0 add sp,10 pop ax pop bx push ax push bx pop ax pop bx mov ax,4c00H int 21Hcodesg endsend(2)用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶内容。step 0:通过debug t1.exe加载程序后:ax=0000H;bx=0000H;c... 阅读全文
posted @ 2013-07-29 20:46 tsembrace 阅读(8965) 评论(0) 推荐(2) 编辑
摘要: 4.1一个源程序从编写到执行的过程第一步:编写汇编源程序;第二步:对源程序进行编译和连接:编译器进行编译,生成目标文件,连接器对目标文件进行连接,生成可执行文件;第三步:执行可执行文件。4.2源程序汇编语言源程序中有两种指令:一种是汇编指令,一种是伪指令。汇编指令对应有机器码,可以被编译为机器指令;而伪指令是由编译器来执行的指令,是辅助编译工作的指令,并不转化成机器码,更不会被执行。程序返回:一个程序要被执行,首先要被加载到内存,然后将CPU控制权交给该程序。比如对于单任务操作系统DOS下,若P1正在执行,要执行P2的话,则P1先要将P2加载到内存,将CPU控制权交给P2,然后P2开始运行,P 阅读全文
posted @ 2013-07-29 19:36 tsembrace 阅读(1039) 评论(0) 推荐(0) 编辑
摘要: 3.1内存中字的存储一个字(word)的长度为16位,即2个字节,而内存单元为单字节,所以要存储一个字长的数据,需要两个内存单元,并且字的高位存储在高地址单元,字的低位存储在低地址单元。比如数据:1188H,为16位数据,即一个字长,要将其存储在编号为0000H开始的内存中,那么编号为0000H的内存单元里存放88H,0001H的内存单元里存放11H。3.2DS和[address]8086CPU中的DS寄存器通常用来存放要访问的数据的段地址,比如要读取地址为10000H单元的内容,可以用如下代码:mov bx,1000Hmov ds,bxmov ax,[0] //这里偏移地址为0,默认段地址在 阅读全文
posted @ 2013-07-29 15:00 tsembrace 阅读(1139) 评论(0) 推荐(0) 编辑