汇编语言程序设计:存储单元与寄存器分配解析

需积分: 46 1 下载量 57 浏览量 更新于2024-07-12 收藏 470KB PPT 举报
"该资源是一份关于微机原理的PPT,主要讲解了存储单元及寄存器的分配,以及汇编语言程序设计的相关知识,包括汇编语言的基本概念、程序设计过程和特点。" 在微机原理中,存储单元和寄存器的分配对于程序的运行至关重要。在给定的描述中,提到了以下几个寄存器的特定用途: 1. BX 寄存器:被用作指向BUF存储区的地址指针。初始值为BUF的偏移地址,每次循环后,其值递增1,以便在处理数组或缓冲区时逐个访问元素。 2. CX 寄存器:作为循环计数器,初始设置为BUF区中元素的数量N。每完成一次循环,其值递减1,直到计数器清零,循环结束。 3. AX 寄存器:在这个例子中,用于累计负元素的个数,初始值为0。随着程序的执行,AX寄存器会根据找到的负元素数量进行更新。 4. 字变量 R:存储负元素的总数,与AX寄存器的功能相似,但可能用于长期存储,而非临时计算。 汇编语言是计算机科学中的一个重要概念,它介于机器语言和高级语言之间。在第四章的汇编语言程序设计中,学习目标包括理解汇编语言的基础知识、程序结构、语句格式,以及如何使用伪指令、宏指令和系统功能调用。 1. 机器语言是计算机能直接执行的二进制指令集,与硬件紧密相关,虽然执行效率高,但编程困难。 2. 汇编语言是机器语言的符号形式,提高了可读性,同时保持了接近硬件的高效执行,适用于实时程序和系统程序的开发,但编程效率相对较低且移植性差。 3. 高级语言如C、Java等,具有良好的通用性和可移植性,编程效率高,但生成的目标代码占用内存较多,执行速度相对较慢。 汇编语言程序的创建和执行涉及编辑、汇编和连接三个步骤: - 编辑阶段:使用文本编辑器创建源代码文件(.ASM)。 - 汇编阶段:通过汇编器(如MASM.EXE)将源代码转换为目标文件(.OBJ),同时可能生成列表文件(.LST)和交叉索引文件(.CRF)。 - 连接阶段:使用连接器(如LINK.EXE)将多个.OBJ文件链接成单一的可执行文件(.EXE),可能还会产生.MAP和.LIB文件。 调试工具如DEBUG.COM也在此过程中起到关键作用,允许程序员对编译后的程序进行单步执行、查看内存状态、修改寄存器值等调试操作。 总结来说,这份PPT着重介绍了微机原理中的存储管理和汇编语言编程,对于理解计算机底层工作原理和汇编语言程序设计有极大帮助。

CODE SEGMENT ASSUME CS:CODE ADPORT EQU 0060H DAPORT EQU 0070H IOBPT EQU 0071H IOCPT EQU 0072H IOCONPT EQU 0073H CONTPORT EQU 00DFH DATAPORT EQU 00DEH ST11 EQU START START: CALL GETPC JMP DACONTORL GETPC: MOV BX,SP ;取得开始 IP 地址子程序 MOV AL,DS:[BX+0] MOV AH,DS:[BX+1] SUB AX,3 MOV ES,AX RET DACONTORL: MOV DX,ADPORT MOV AL,0H OUT DX,AL MOV AL,89H MOV DX,IOCONPT OUT DX,AL ;初始化 8255 CALL LEDDISP MOV BX,ES DACON1: MOV DX,DAPORT ;正弦波产生 MOV AL,CS:[BX+DATA2] OUT DX,AL CALL DELAY1 MOV DX,IOCPT IN AL,DX ;取得 8255 状态 CMP AL,0H JE FANGBO INC BL MOV AL,BL CMP AL,63 JE DACON2 INC BL JMP DACON1 DACON2: MOV BX,ES JMP DACON1 FANGBO: CMP BH,1 ;方波产生 JE FAN1 MOV AL,0 MOV BH,1 JMP FAN2 FAN1 : MOV AL,0FFH MOV BH,0 FAN2 : MOV DX,DAPORT OUT DX,AL MOV DX,IOCPT IN AL,DX ;取得 8255 状态 CMP AL,1 JE DACON1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 JMP FANGBO DELAY1: PUSH CX ;延时子程序 1 MOV DX,ADPORT IN AL,DX MOV CL,AL MOV AL,0 OUT DX,AL MOV AL,CL MOV CL,4 ;移位数 SAR AL,cl AND AL,0FH ADD AL,1 MOV CL,AL MOV CH,0 DELA2: CALL DELAY2 LOOP DELA2 POP CX RET DELAY2: PUSH CX ;延时子程序 2 MOV CX,8 DELA1: LOOP DELA1 POP CX RET LEDDISP:MOV AL,90H ;显示子程序 MOV DX,CONTPORT OUT DX,AL MOV BYTE PTR DS:[0600H],00 MOV BX,ES LED1: CMP BYTE PTR DS:[0600H],07H JA LED2 MOV AL,CS:[BX+DATA1] MOV DX,DATAPORT OUT DX,AL INC BX ADD BYTE PTR DS:[0600H],01H JNZ LED1 LED2: RET DATA1 DB 6DH,6DH,5BH,7FH,5BH,4FH,7FH,3FH ;LED 显示 0832--3 DATA2 DB 143,153,165,177,189,200,210,219,228,235,242,247,251,254,255,255 DB 254,252,249,244,238,231,223,214,204,193,182,170,158,146,133,120 DB 107,95 ,83 ,71 ,60 ,49 ,39 ,31 ,23 ,16 ,10 ,6 ,2 ,0 ,0 ,0 DB 2 ,5 ,9 ,14 ,21 ,29 ,37 ,47 ,57 ,68 ,80 ,92 ,104,117,130,140 ;SIN 正弦波数据表 CODE ENDS END START中的每句话都在干什么

2023-06-08 上传