汇编语言(3)

5.1、基本概念

1、汇编语言源程序的框架中,ASSUME 指令的作用?它会给相应的段寄存器赋值吗?
伪指令。ASSUME的作用是关联段名与段寄存器,不会赋值。

2、如何装填数据段寄存器?代码段寄存器需要装填吗?
数据段一定要装填,代码段不装填

3、源程序最后一条指令是什么,其中的标号的含义是什么?
END START

4、在纸上写出一个汇编语言源程序的框架(有数据段和代码段),拍照上传

DATA SEGMENT
	
DATA ENDS
CODE SEGMENT
ASSUME   CS:CODE, DS:DATA
START:	MOV  AX, DATA
	MOV  DS,AX
	

	MOV AH, 4CH
	INT 21H
CODE ENDS
END START

5、什么是伪指令?和指令相比有何特点?
一种不产生目标代码的语句,仅仅在汇编过程中告诉汇编程序如何汇编

6、指令格式中,名字的属性有什么? 段的名字的属性是什么?指令的名字的属性是什么?变量的名字的属性是什么?
在指令语句中,名字就是一个标号。标号有三个属性:段、偏移地址和类型。
变量的属性:段、偏移量、类型

7、运算符的功能:SEG OFFSET SIZE LENGTH PTR LOW HIGH
SEG:可以得到一个标号或变量所在段的段地址。
OFFSET:得到一个标号或者变量的偏移地址。
SIZE:如果一个变量已用重复操作符DUP说明,则利用SIZE可得到分配给该变量的字节总数。如果未用DUP说明,则得到的结果是TYPE运算的结果。
LENGTH:如果一个变量已用重复操作符DUP说明其元素个数,则可得这个变量中元素的个数。如果未用DUP,结果总是1.
PTR:指定或修改存储器操作数的类型。
LOW:(字节分离运算符)
HIGH

5.2、汇编语言源程序的上机过程

1、简述汇编语言程序的上机过程
1)用编译程序(EDIT)建立ASM源程序文件
2)用汇编程序(MASM或ASM)把ASM文件汇编成OBJ文件
3)用连接程序(LINK)把OBJ文件转换成EXE文件
4)在DOS命令行直接键入文件名执行该文件。
2、为什么DS和ES必须装填?

3、INT 20H 指令的功能?它存放在哪里?如何才能执行到它?
4、标准DOS返回方式中,采用了什么样的方式来找到INT 20H 这条指令的?
INT 20H指令是返回DOS的标准方法。
存放在程序段前缀区PSP的第一个第二个位置存储单元
1)、把主程序定义成一个远距离过程
过程名 PROC FAR

RET
过程名 ENDP
2)在给DS、ES赋初值之前,用下列三条指令,把PSP首单元的逻辑地址压入堆栈,即

PUSH	DS	;PSP段地址压栈
MOVE	AX,0	;或用XOR AX,AX指令
PUSH	AX	;PSP段首地址的偏移地址
			;压栈
DATA SEGMENT
	NUM DB 82H,68H,88H
	SUM DB ?
DATA ENDS
CODE SEGMENT
	MAIN PROC FAR	;
	ASSUME CS:CODE,DS:DATA
	START:PUSH DS
		XOR AX,AX
		PUSH AX
		MOV AX,DATA
		MOV DS,AX
		LEA BX,NUM
		MOV AL,[BX]
		INC BX
		ADD AL,[BX]
		INC BX
		ADD AL,[BX]
		MOV SUM,AL
			RET
		MAIN ENDP
	CODE ENDS
	END START
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值