- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理3.2-3.3课件
例:
DATA SEGMENT
BYTE1 DB 1
WORD1 DW 1
DWORD1 DD 1
DATA ENDS;?的作用;字符串的定义;DUP的使用;例:将数据段内的起始100个字节初始化为0
DATA SEGMENT
DB 100 DUP(0)
DATA ENDS;DW举例;例:
COUNT EQU 20
MOV AL,COUNT;AL=20=14H;
例4_11(P72)
DATA SEGMENT
ARRAY DB10H,24H,5AH,0C7H,98H,’ABCDE’
COUNT EQU $-ARRAY
MAX DB ?
DATA ENDS;编写代码段,通常情况下,可将代码段取名为CODE. ;3.3.2 顺序结构程序;DATA SEGMENT
TABLESQ DB 0,1,4,9,16,25,36,49,
DB 64,81,100,121,144,169,196,225
XX DB 5
YY DB ?
DATA ENDS
;;;
编程实现将变量D1和D2中的数据相减,结果放在DIF变量中。;例4_17(P147)把非压缩十进制数转换为压缩十进制数,被转换数存放在DAT1开始的两个单元,转换后的数存回DAT1单元。;将BUF字节单元存放的两位BCD码,转换成2个字节的ASCII码,并分别存放在ASC和ASC+1字节单元中。;将字节单元D1存放的数据的第1位,第3位取反,而其余位不变,变换后的数据存放在D2单元。;DATA SEGMENT; 设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关功能的指令): ;功能:求10个字节数据a1~a10之和。
DATA SEGMENT
ARRAY DB a1,a2,a3,……,a10
Count EQU $-ARRAY
SUM DW
DATA ENDS
CODE SEGMENT
ASSUMENT CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV BX,OFFSET ARRAY
MOV CX,COUNT
LP: ADD AL,[BX]
ADC AH,0
INC BX
LOOP LP
MOV SUM,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START ;若自Block开始的内存中有100个带符号字数据,找出最小值存入MIN单元。 ;【例3-24(90)】已知有几个元素存放在以BUF为首址的字节存贮区中,试统计其中负元素的个数。
显然,每个元素为一个8位有符号二进制数,统计其中负元素的个数可用循环程序实现。;DATA SEGMENT
D1 DB -1,-3,5,6,-9,…
COUNT EQU $ - D1
RS DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX; MOV BX,OFFSET D1
MOV CX,COUNT
MOV DX,0
LOP1: MOV AL,[BX]
CMP AL,0
JGE JUS
INC DX
JUS: INC BX
LOOP LOP1
MOV RS,DX
MOV AH, 4CH
INT 21H
CODE ENDS
END BEGIN;【例3-25】试编一个程序将字单元BUF中所含1的个数存入COUNT单元中。
要测出BUF字单元所含1的个数,首先将BUF中的数送给寄存器AX,然后将AX寄存器逻辑左移一次,如果CF=1,则表明AX中的最高位为1,
文档评论(0)