汇编语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.1、判断下列标识符的合法性。

1)、code 合法

2)、Data 合法

3)、ABCDH 合法

4)、1abcH 不

5)、eax 不

6)、???01 合法

7)、A?@ 合法

8)、www@zsu 合法

9)、www@不

10)、AX$DX 合法

11)、_BX 合法

12)、CX 不

4.2、按下面要求写出相应的数据定义语句(未指定变量名的,可任意指定或省缺)。

1)、定义一个字节区域,第一个字节的值为20,其后跟20个初值为0的连续字节;

DB 20,20 DUP(0)

2)、定义一个以0为结束符的字符串,其初值为:The course is easy;

DB “The course is easy”,0

3)、定义一个以'$'为结束符的字符串,该串中含有换行符和回车符;

DB 0D,0A,”$”

4)、定义100个字,其初值为0;

DW 100 DUP(0)

5)、从一个偶地址开始定义一个字变量word;

EVEN

WORD DW ?

6)、先定义一个字符串String,其偏移量指定为10,其初值为"ABCDEF",然后再定义3个字类型的数组Data,要求String和Data的偏移量相同;

ORG 10

STRING DB "ABCDEF"

ORG 10

DATA DW 3 DUP(?)

7)、定义一个字符串String,其初值为"12345678",再定义4个字类型的数组Data,要求String和Data共享同一片内存单元;

STRING DB "12345678"

ORG $-8

DATA DW 4 DUP (?)

4.3、把下列C语言的变量定义语句改写成与之等价的汇编语言语句。

1)、char ch1, ch2[3], ch3[]="Are you ready?", ch4='Q';

CH1 DB ?

CH2 DB 3 DUP (?)

CH3 DB "Are you ready?",0

CH4 DB “Q”

2)、int w1, w2[5], w3=0x1234,

w4[]={90, 89, 432, 344};

W1 DW ?

W2 DW 5 DUP (?)

W3 DW 1234H

W4 DW 90,89,432,344

3)、long int d1=1234, d2, d3[10], d4[]={1, 2, 3, 4, 5, 6};

D1 DD 1234

D2 DD ?

D3 DD 10 DUP(?)

D3 DD 1,2,3,4,5,6

4.4、假设4.3题中三组变量在内存中是连续存放的,且变量ch1的偏移量是20H,试求出其它每个变量的偏移量。

4.5、按下列要求分别写出汇编语言的结构定义,如果没有说明结构分量的类型,请根据日常习惯自行指定其数据类型(可使用已有的结构定义)。

1)、定义日期结构类型Date,其包括:Year(年)、Month(月)和Day(日);DATA STRUC 偏移量

YEAR DB ? 0

MONTH DB ? 1

DAY DB ? 2

DATA ENDS

2)、定义时间结构类型Time,其包括:Hour(小时)、Minute(分)、Second(秒)和centsec(百分之一秒);

TIME STRUC

HOUR DB ? 0

MINUTE DB ? 1

SECOND DB ? 2

CENTSEC DB ? 3

TIME ENDS

3)、定义结构Peason,其包括:name(姓

名,字符,长度为8)、Birth(出生日期,Date),stature(身高,以厘米为单位的整数),Address(地址,30个字符) PERSON STRUC

NAME DB 8 DUP(?) 0 BIRTH DATA < > 8

STATURE DB ? 0BH ADDRESS DB 30 DUP (?) 0CH PERSON ENDS

4.6、试求出4.5题各结构中字段的偏移量。

4.7、把下列C语言的结构或结构变量的

定义改写为与之等价的汇编语言定义语句。

1)、struct ScreenBuffer {

char c1; //字符

char attr; //字符属性

} Buffer[2000];

ScreenBuffer struc

C1 DB ?

ATTR DB ?

ScreenBuffer ENDS

BUFFER ScreenBuffer 2000

DUP(< >)

2)、struct FILE {

int level, flags;

char fd, hold;

int bsize, istemp, token;

};

3)、struct CELLREC {

char attrib;

union {char

text[201];

long value;

struct {long fvalue;

char formula[201];

} f;

} v;

};

答:

STRUC_F STRUC

FVALUE DD ?

FORMULA DB 201 DUP(?) STRUC_F ENDS

UNION_V UNION

TEXT DB 201 DUP(?)

相关文档
最新文档