随笔分类 -  汇编语言

摘要:(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 阅读(8961) 评论(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 阅读(1137) 评论(0) 推荐(0) 编辑
摘要:一个典型的CPU由运算器、控制器、寄存器等部件组成,部件之间靠内部总线连接。运算器进行信息处理,寄存器进行信息存储;控制器控制各部件进行工作,内部总线连接各部件以进行数据的传输。不同的CPU寄存器的个数和结构都是不尽相同的。2.1通用寄存器以8086为例,其内部所有寄存器都是16位的,即两个字节。其中AX、BX、CX、DX这4个通常存放一般性的数据,称为通用寄存器。AX的低8位(0~7位)构成一个8位寄存器AL,高8位(8~15位)构成一个8位寄存器AH,其他也类似。若:AX=8000H;对于指令add ax,8888H后ax的值是多少?8000H+8888H=10888H,但AX只能保存16 阅读全文
posted @ 2013-07-28 22:14 tsembrace 阅读(2230) 评论(0) 推荐(0) 编辑
摘要:*检测点1.1(1)1个CPU寻址能力为8KB,那么它的地址总线宽度为(13根)。(2)1KB的存储器有(1024)个存储单元,编号从(0)到(1023)。(3)1KB的存储器可以存储(8K)个bit,(1K)个Byte。(4)1GB、1MB、1KB分别是(2^30,2^20,2^10)Byte。(5)8080、8088、80286、80386地址总线分别为16根、20根、24根、32根,则它们寻址能力分别为:64KB、1MB、16MB、4GB。(6)8080、8088、8086、80286、80386数据总线宽度分别为8根、8根、16根、16根、32根,则它们一次可以传送的数据分别为:1B、 阅读全文
posted @ 2013-07-25 16:17 tsembrace 阅读(797) 评论(0) 推荐(0) 编辑