华中科技大学汇编作业(第一章)

第1章 作业

要求: (1) 所有的题目做在作业本上(题目抄写在作业本上,不能只写题号);

(2) 下礼拜一(5.4日)上课时交作业;

(3) 请各班学习委员收作业本时按学号从小到大排列(作业本封面上要有

班级和学号)。

1. 80X86微处理器有哪些通用寄存器?各有什么用途?

2. 设字长n=16,将整数-1234H 存放到内存中物理地址为20000H 处,问-1234H 将存贮在哪几个物理单元(字节),每个单元处的值是多少?

4. 什么情况下会发生溢出?什么情况下会产生进位(借位)?执行指令“MOV AX, 4341H; ADD AH, AL ”后CF 、OF 、ZF 、SF 是多少?

5. 设(EAX )=12345H,(EBX )=2345678H,(ECX )=89ABCDEFH, 执行完下面的指令后(EAX )=?(EBX )=?画出每一条指令执行后的堆栈示意图。 PUSH AX

PUSH BX

PUSH ECX

ADD SP, 1

POP EAX

POP BX

物理地址 12340h 12341h 12342h 12343h 12344h 3. 右图是内存中物理地址为12340h

处的几个单元中的值。(DS)=1230H,

(SI)=41H, (CS)=1183H, (IP)=0B12H 。 (1) DS:[SI]所指处的有符号数和无符

号数(2个字节)分别是多少;(2)

DS:[SI]所指处的有符号和无符号长字(4个字节)所表示的数分别是多

少 (用16进制数表示);(3)设下一

条指令由3个字节组成,那么下一条指令的机器码是多少?

6. 分析下面程序的执行结果

union { char A[9];

struct { short n1;

unsigned short n2;

} b;

long c;

} a;

void main()

{

strcpy(a.A, “12345ABC”); //将字符串“12345ABC”拷贝到缓冲区a.A

a.A[1] = 0x80;

printf(“%d %d %ld \n”, a.b.n1, a.b.n2, a.c); //可以使用16进制给出结果

a.b.n2 *= -1;

pri ntf(“%d %d %ld \n”, a.b.n1, a.b.n2, a.c); //可以使用16进制给出结果unsigned short *p = &a.b.n2;

p[-1] = 0x6261;

p[0] = 0x6463;

printf(“%s \n”, a.A+1);

}

相关文档
最新文档