搜档网
当前位置:搜档网 › IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学...

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学...

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学...
IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学...

IBM-PC汇编语言程序很好(第二版)课后习题答案(清华大学出版社)

(沈美明,温冬蝉著)

第二章

1.解答:有256个

2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元

E5

1E

3C

2A

3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH

30021H字单元内容: AB34H 30022H字单元内容: CDABH

4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址

5.解答: CS+IP 第一个字的物理地址为: 0AAA40H

6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,0

7.下列操作可使用那些寄存器?

(1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL等(2)循环计数 CX

(3)乘法和除法DX,AX,AH,AL

(4)保存段地址CS ,DS,ES,SS

(5)表示运算结果为O FLAGS

(6)将要执行的指令地址IP

(7) 将要从堆栈取出数据的地址BP,SP,SS

8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP

9.一一对应;

5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O

第三章

1.(1)立即寻址没有

(2)直接寻址7237H

(3)使用BX的寄存器寻址没有

(4)使用BX的间接寻址 637DH

(5)使用BX的寄存器相对寻址0D5B4H

(6)基址变址寻址8E18H

(7)相对基址变址004FH

2.根据下列要求,写出相应的汇编指令。

(1)ADD DX,BX

(2) ADD AL,[BX][SI]

(3) ADD [BX][0B2H], CX

(4) MOV AX,2A59H ADD [0524H] ,AX

(5) ADD AL ,0B5H

3.(1)寄存器间接寻址

MOV BX,OFFSET [BLOCK][0AH]

MOV DX ,[BX]

(2)寄存器相对寻址

MOV SI,OAH

MOV DX,[BLOCK][SI]

(3)基址变址寻址

MOV BX ,BLOCK

MOV SI,OAH

MOV DX,[BX][SI]

4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(2120 0)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。

(1)MOV AX,1200H 1200H

(2) MOV AX,BX 0100H

(3) MOV AX,[1200] 4C2AH 注意,是字单元!!

(4)MOV AX,[BX] 3412H 同上

(5)MOV 1100[BX] 4C2AH

(6) MOV AX,[BX][SI] 7856H

(7) MOV AX,1100[BX][SI] 65B7H

5.(1)7CD9H (2) 0600H (3)098AH

6. MOV BX,2000H

LES DI ,[BX]

MOV AX, ES:DI

7.转向地址OBJ的值分别为:

(1)064DH (2)0691H (3)05E0H 注意有符号数的符号位

8. (1)MOV AX,0ABH 立即数寻址无物理地址

(2)MOV AX,BX 寄存器寻址同上

(3)MOV AX,[100] 直接寻址 20100H

(4)MOV AX,V AL 直接寻址20050H

(5) MOV AX,[BX] 寄存器间接寻址20100H

(6) MOV AX,ES:[BX] 直接寻址21100H

(7) MOV AX,[BP] 寄存器间接寻址20010H

(8)MOV AX,[SI] 同上200A0H

(9) MOV AX,[BX+10] 寄存器相对寻址20110H

(10)MOV AX,V AL[BX] 同上20150H

(11) MOV AX,[BX][SI] 基址变址寻址201A0H

(12) MOV AX,V AL[BX][SI] 相对基相变址寻址201F0H

9.(1)的指令:MOV AX, [BX][0CH] MOV ZREO ,AX

(2)的指令:MOV AX,ARRAY[BX] MOV ZREO,AX

10. MOV AX,TABLE 是把符号地址TABLE里的内容送到AX里,指令执行完后,(AX)=1234H

LEA AX,TABLE 是把符号地址TABLE 的有效地址(这里是偏移量)送到指定寄存器AX 里,指令执行完后,(AX)=0032H

11.执行完指令后,(AX)=1E00H

12. LEA AX,CSTRING

MOV DL,AX

MOV DH,[AX+6]

13.课本上P51--P53

14. LES BX,[2000]

MOV AX,ES:[BX]

一条指令的话为MOV AX,ES:[8000H]

15.运算结果SF,ZF,CF,OF各位的值(从左至右依次往下)

(1)74D4H 0 0 0 0

(2) A5C1H 1 0 0 1

(3) 4240H 0 0 1 0

(4) 0000H 0 1 1 0

16.接上表

(1) 5D14 0 0 0 0

(2) A870 1 0 0 1

(3) D870 1 0 0 0

(4) 34E4 0 0 1 0

17. (1)MOV AX,Z ;把Z送到AX

SUB AX,X ;Z-X

ADD AX,W ;W+(Z-X)

MOV Z,AX ;结果保存在Z中

(2)MOV AX,R ;R送到AX中

ADD AX,9 ;R+9

MOV BX,X ;X送到BX中

ADD BX,6 ;X+6

ADD AX,BX ;(R+9)+(X+6),结果保存在AX中

MOV BX,W ;W送到BX中

SUB BX,AX ;W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和

MOV Z,BX ;最终结果送到Z中

(3)

MOV AX,W ;把W送到AX

IMUL X ;W*X 注意:低十六位保存在AX里,高十六位保存在DX里

MOV BX,Y ;把Y送到BX 里

ADD BX,6 ;Y+6

IDIV BX ;(W*X)/(Y+6) 注意:商保存在AX里,余数保存在DX里

MOV Z,AX ;把商送到Z中,

MOV R,DX ;把余数送到R中

(4)

MOV AX,W ;把W送到AX中

SUB AX,X ;W-X

CWD ;把AX中的十六位带符号数扩展成为32位,低十六位保存在AX中,高十六位保存在DX中

MOV BX,5 ;把5送到BX中

IDIV BX ;(W-X)/5 被除数为32位,除数为16位商为16位

IMUL Y ;上一步结果再乖以Y,积为32位

MOV BX,2 ;把2送到BX中

IMUL BX ;上一步乘法所得的积再乘以2,各为64位

MOV Z,EAX ;把结果中低32位放入Z双字单元中

MOV [Z+4],EDX ;把结果中高32位放入Z+4双字单元中

18.

指令本条指令执行完后AX的内容执行完后CF,SF,ZF的值

MOV AX,1234H 1234H 0 0 0

MOV CL,4 1234H 0 0 0

ROL AX,CL 2341H 1 0 0

DEC AX 2340H 1 0 0

MOV CX,4 2340H 1 0 0

MUL CX 8918H 0 0 0

INT 20H

程序结束后,(AX)=8918H (DX)=0000H

19.

指令执行完后AX的内容执行完后CF ,SF,ZF和OF的值

MOV AX,0 0 0010

DEC AX FFFFH 0100

ADD 7FFEH 0000

ADD AX,2 8000H 0101

NOT AX 7FFFH 0101

SUB AX,0FFFFH 8000H 1101

ADD AX,8000H 0000H 1011

SUB AX,1 FFFFH 1101

AND AX,58D1H 58D1H 0000

SAL AX,1 B1A2H 0101

SAR AX,1 D8D1H 0100

NEG AX 272FH 1000

ROR AX,1 9397H 1001

20.

(1)MOV AX,DA TAX

ADD DATAY,AX

(2)MOV AX,DA TAX

ADD DATAY,AX

MOV AX,[DATAX+2]

ADD [DATAY+2] ,AX

(3)本組指令的作用是:BX <------[DATAX]+[DA TAY]+[1](CF的值) 帶進位加法~ (4)MOV AX,DA TAX

MUL DATAY ;結果的高十六位保存在DX裏,低十六位保存在AX裏

(5)MOV AX,DATAX

MOV DX,[DATAX+2]

MUL DWORD DATAY ;結果的高三十二位保存在EDX裏,低三十二位保存在EAX 裏

(6)MOV AX,DA TAX

DIV 17H ;結果商保存在AL中,余數在AH中

(7)MOV AX,DATAX

CDW

DIV DATAY

21. NEG DX

NEG AX

SBB DX,0

22.

MOV AX,A ;把雙字長數的低字放到AX中

MOV DX,[A+2] ;把雙字長數的高字放到DX中

TEST DX,8000H ;測試雙字長數的符號

JZ RIGHT ;如果是非負數,則直接保存

NEG DX ;如果是負數,則求補

NEG AX

SBB DX,0

RIGHT:MOV B ,AX

MOV [B+2],DX

23.每條指令單獨執行完後的結果依次為:

(1)9AH (2)61H (3)0FBH (4)1CH (5)0 (6)0E3H

24.執行指令序列後,BX的內容為:0DAH

25.

(1)把53D乘以2的程序:

MOV AX,35H ;53D=35H

SHL AX ,1

(2)把53除以2 的程序:

MOV AX,35H

SHR AX,1

26.這段程序完成的功能是:把DX:AX中的雙字數據左移4位(相當於乘以16D)

27.各條指令單獨執行後,DX的值依次為:

(1)5CH(2)17H(3)05C8H(4)72H(5)2017H(6)0CDH(7)0172H(8)05CCH (9)0DCH

28. 該程序段執行完後,BX寄存器的內容是:C02DH

29.(1)从左到右把CONMAE中的字符串伟送到PRLINE的程序实现:

LEA SI,CONAME ;把CONAME中第一个字节的偏移地址送到SI中

LEA DI,PRLINE ;把PRLINE中第一个字节的偏移地址送到DI中

MOV CX,20 ;把重复次数放到CX里

CLD ;让SI DI从低地址指向高地址(即从左到右传送)

REP MOVSB ;传送

(2)从右到左把CONMAE中的字符串传送到PRLINE中的程序实现:

LEA SI ,CONAME

LEA DI,PRLINE

MOV CX,20

STD ;和上面唯一不同的就是这次是从右到左,所以要从高地址批向低地址

REP MOVSB

(3)把CONAME中的第三和第四個字節裝入AX的程序實現:

LEA SI ,[CONAME+3]

LODSW

(4)把AX寄存器的內容存入從PRLINE+5開始的字節中的程序實現:

LEA DI ,[PRLINE+5]

STOSW

(5)檢查CONAME字符串中有無空格字符,如有把它偉送給BH寄存器的程序實現:LEA DI,CONAME ;把CONAME中第一個字符偏移地址放入DI中

MOV CX,20 ;把重複次數放到CX中

MOV AL,20H ;把空格符的ASCII值放入AL中

CLD ;從低到高

REPNE SCASB ;比較

MOV BH,[DI-1]R ;把檢查到的空格符送到BH中

30.

MOV CX,12H ;把重複次數放到CX中。這裏用十六進制表示

MOV SI,0 ;初始化SI

MOV AX,26H ;把&字符的ASCII值放入AX

CHECK:CMP AX,STRING[SI] ;依次查找

INC SI

LOOPNE CHECK ;找到了就退出

MOV AX,20H ;把空格符的ASCII值勤放入AX中

MOV STRING[SI-1],AX ;用空格符代替&

31.(1)用空格符清除PRINT_LINE域的程序实现:

MOV AL,20H

LEA DI ,PRINT_LINE

MOV CX,132

CLD

REP STOSB

(2)在STUDENT_ADDR中查找第一个“_”的程序实现:

MOV AX,2DH ;把“—”的ASCII值放入AX

MOV SI,0 ;初始化SI

MOV CX,9 ;把重複次數放入CX中

;依次檢查STUDENT-ADDR中的字符是否為“_”,找到第一个停下来

CHECK:CMP AX ,STUDENT_ADDR[SI] ;

INC SI

LOOPNZ CHECK

(3)在STUDENT_ADDR中查找最后一个“_”的程序实现:

;和第二題不同的就是這次是從右到左查詢,所以SI的初始化為9

MOV AX,2DH

MOV SI ,9

MOV CX,9

CHECK :CMP AX,STUDENT_ADDR[SI]

DEC SI

LOOPNZ CHECK

(4)程序實現:

MOV AL,2OH ;把空格符的ASCII值放入AL中

LEA DI ,STUDENT_NAME ;把STUDENT_NAME中第一个字符偏移地址放到DI中MOV CX,30 ;把重复次数放到CX中

CLD ;让DI从低位移到高位

REPZ SCASB ;如果有不是空格符的,就退出

JZ STORE ;如果全是空格符,就转到STORE中

;用*代替空格

STORE:MOV AL 2AH

MOV CX ,30

STD ;注意,这里是把前面从低到高移动的DI再从高到低移上去

REP STOSB

(5)程序实现:

;把STUDENT_NAME 移到PRINT_LINE的前30个字节中

LEA SI,STUDENT_NAME

LEA DI,PRINT_LINE

MOV CX ,30

CLD

REP MOVSB

;把STUDENT_ADDR移到PRINT_LINE的后9个字节中

LEA SI ,[STUDENT_ADDR+9]

LEA DI,[PRINT_LINE+132]

MOV CX,9

STD

REP MOVSB

32.程序实现:

LEA SI,OLDS

LEA DI,NEWS

MOV CX,5

REPZ CMPSB

JNZ NEW_LESS

33.

(1)CMP DX,CX

JA EXCEED

(2)CMP BX,AX

JG EXCEED

(3)CMP CX,0

JZ ZERO

(4)CMP BX,AX

JO OVERFLOW

(5)CMP BX,AX

JLE EQ_SMA

(6) CMP DX,CX

JBE EQ_CX

34. (1)跳转到:L1

(2)跳转到L1

(3)跳转到L2

(4)跳转到L5

(5)跳转到L5

35.

(1)可以引起转移到L1的指令有:NB ,BE ,NL ,LE

(2)可以引起转移到L1的指令有:同上

(3)可以引起转移到L1的指令有: B,BE ,L ,LE

(4)可以引起转移到L1的指令有:NB ,NBE ,NL ,NLE

(5)可以引起转移到L1的指令有:同上

(6)可以引起转移到L1的指令有:同(3)

(7)可以引起转移到L1的指令有:同上

37.

MOV AL,STAUS[SI] ;把要测试的字节放到AL中

AND AL,2AH ;把第一,三,五位为一其他位为0的数--2AH,与这个字节比较,结果放到AL中

JZ ROUTINE_4 ;如果结果为0,则三位都为0

XOR AL,2AH ;前面相与的结果再与2AH异或

JZ ROUTINE_1 ;如果结果为0,则三位都为1

BSF BL,AL ;

BSR BL ,AL

CMP BL,CL

;如果向前和向后测试后,第一个1 的位置相同,说明只有一个1,则异或运算前有AL中有两个1

JE ROUTINE_2

ROUTINE_1

38.(1)当括号内是:LOOP时,循环四次,程序结束后

(AX)=05 (BX)= 16 (CX)=0 (DX)=0

(2)当括号内是:LOOPE 时,不循环,程序结束后

(AX)=02 (BX)=04 (CX)=03 (DX)=02

(3)当括号内是:LOOPNE 时:循环三次,程序结束后

(AX)=04 (BX)=11 (CX)=01 (DX)=0

39.P101

40.(1)0000 3100H (2)5100H (3)7100H

41.(1)目的地址:2004H 内容依次为:56H F4H 23H 98H

(2)目的地址:384CH 内容依次为:91H 34H F2H 01H

(3)目的地址:寄存器,无物理地址~ 内容依次为:92H 6DH A2H 4CH 42.(1)PUSH AX

(SP)<------(SP)-2

(SP+1)<-----(AH) (SP)<------(AL)

(2)POP ESI

(ESI)<-------((ESP)+3,(ESP)+2,(ESP)+1, (ESP))

(ESP)<-------(ESP)+4

(3)PUSH [BX]

(SP)<------(SP)-2

(SP+1)<-----([BX+1]) (SP)<------([BX])

(4) PUSHAD

(ESP)<-------(EAX)

(ESP-4)<-------(ECX)

(ESP-8)<-------(EDX)

(ESP-12)<-------(EBX)

(ESP-16)<-------(ESP) ;这里指的是指令执行前的ESP

(ESP-20)<-------(EBP)

(ESP-24)<-------(ESI)

(ESP-28)<-------(EDI)

(ESP)<-------(ESP)-32

(5)POP DS

(DS)<------((SP)+1,(SP))

(SP)<------(SP)+2

(6) PUSH 4

(SP)<-------(SP)-2

(SP+1)<-----0

SP)<------4

43.(1)2CE FF93H (2)24B 76A0H

(3)909 0804H (4)6F 13ADH

44. (1)0FFFF FFFCH (2)0FFFF FFF8H

(3)0000 0007H (4)0000 0099H

45. (EAX)=0 (EBX)=25d

46. (AX)=3d (DX)=7d

47. ADD ECX,EDX

ADD ECX,ESI

MOV EDI ,ECX

48. IMUL BX,DX,100H执行的操作是:

(BX)<-------(DX)*100H

49.程序实现:

MOV AL,BL

CBW

IDIV CL

IMUL 2

MOV DX,AX

50.

JMP DI 是直接跳转,执行的操作是:(IP)<-----(IP)+(DI)

JMP [DI]是间接跳转,执行的操作是:(IP)<----(IP)+([DI])跳转到DI中所指向的内存单元中的指令地址

51.假设数组名为NUMBERS,程序如下

MOV BX,0 ;后面用到

MOV CX,100H ;把循环次数放入CX

MOV AL,42H

MOV SI,0 ;初始化SI

;CHECK 用来实现查找功能~

CHECK :CMP AL ,NUMBERS[SI]

INC SI

JB STORE1 ;大于42H的数的个数存入UP

JA STORE2 ;小于42H的的数的个数存入DOWN中

LOOP CHECK ;相等继续循环

STORE1 INC BL ;找到一个大于42 的数,BL值增加1

MOV UP,BL

LOOP CHECK

STORE2 INC BH

MOV DOWN ,BH

LOOP CHECK

第四章

1.指令下列指令的错误

(1)MOV AH,BX 源操作数与目的操作数长度不相同~

(2)MOV [BX],[SI] 这是两个内存单元在传递数据,而这在汇编语言中是不允许的

(3) MOV AX,[SI][DI] 不能用两个变址连用,其中一个应为基址

(4)MOV MYDAT[BX][SI],ES:AX 同(2)

(5)MOV BYTE PTR[BX],1000 必须有一个为寄存器

(6)MOV BX,OFFSET MYDA T[SI] OFFSET 不能与复杂操作数相连

(7)MOV CS,AX 不能对CS赋值

(8)MOV ECX,AX 操作数类型不同

2.(1)非法(2)合法(3)非法(4)非法

3.(1)非法,操作数类型不同

(2)合法

(3)非法,不允许两个内存单元直接传递数据

(4)合法

(5)合法

(6)合法

(7)非法,必须有一个寄存器

(8)非法,两个内存单元地址相加没有意义

(9)合法

(10)非法,同(3)

4.(1)两内存单元传递数据

(2)操作数类型不同

(3)跳转指令只能跳转到符号地址

(4)转移指令后不能为变量,只能为标号

(5)格式不对,应为NEAR PTR

6.(1)DW 5150H

(2)MOV AX,5150H

MOV ADDRESS ,AX

7. DATASG SEGMENT

FLD1B DB 'personal computer'

FLD2B DB 10 DUP (32)

FLD3B DB 20H

FLD4B DB 01011001B

FLD5B DB '32654'

FLD6B DB 10 DUP (0)

FLD7B DB 'PART1',DUP 20 (?),'PART2',DUP 50 (?),'PART3',DUP 14 (?) FLD1W DW 0FFF0H

FLD2W DW 01011001B

FLD3W DW FLD7B

FLD4W DW 5,6,7,8,9

FLD5W DW 5 DUP (0)

FLD6W DW (FLD6W-FLD1W)-(FLD7B-FLD1B)

8.PLENTH 的值为22,GE表示该数据段的长度

9.L的值为7

10.(1)MOV AX,OFFSET LNAME

(2)MOV SI,WORD PTR CODE_LIST

(3)CODE_LENGHT EQU $-CODE_LIST

11.代码如下:

DA TA_SEG SEGMENT

DB 5

DA TA_LIST DW 0FFFFH, 0,2,5,4, 5 DUP (?)

DA TA_SEG ENDS

CODE_SEG SEGMENT

ASSUME CS: CODE_SEG, DS:DATA_SEG

MOV AX, 5

MOV MAX, AX

MOV AX, 0FFFFH

MOV MIN, AX

CODE_SEG ENDS

12.(1)10025(2)19(3)2548(4)3(5)103(6)0FFFFH(7)1(8)3

13.分别汇编成为:

MOV AX,0AH

MOV BL,0AH

MOV CL,1

14.(1)(AX)=1(2)(AX)=2(3)(CX)=14H(4)(DX)=32H(5)(CX)=1]

15.(1)操作符错误改为:DATA_SEG SEGMENT

(2)缺少段名在前面加个段名

(3)引用应该从;开始把那个“/”改成“;”

(4)结构混乱改为:

MAIN_PROC PROC FAR

……

MAIN_PROC ENDP

END

16.程序框架如下:

DA TA_SEG SEGMENT ;定義數據段

ORG 0E000H ;讓下一字節地址為0E000H

FIRST_TYPE EQU THIS WORD ;建立一個與下一存儲單元有相同段地址和偏移地址的操作數

DA TA_GROUP DB 100 DUP(?) ;給DATA_GROUP 分配100個字節的空間

DA TA_SEG ENDS ;數據段結束

STACK_SEG SEGMENT ;定義堆棧段

ALIGN 16 ;讓下一字節從小段首地址開始

STACK DB 100 DUP (?) ;為堆棧分配空間

STACK_SEG ENDS ;

CODE_SEG SEGMENT

ASSUME CS:CODE_SEG ,DS:DA TA_SEG ,SS:STACK_SEG

ORG 1000H ;讓下條指令的第一個字節從1000H開始

START : MOV AX,DATA_SEG

MOV DS,AX

MOV AX,STACK_SEG

MOV SS,AX

.......

CODE_SEG ENDS

END START ;結束

17。程序如下:

D_SEG SEGMENT ;数据段定义

AUGEND DD 99251

D_SEG ENDS

E_SEG SEGMENT ;附加段定义

ADDEND DD -15926

E_SEG ENDS

C_SEG SEGMENT ;代码段定义

ASSUME CS:C_SEG , DS:D_SEG,ES:E_SEG

START: MOV AX,D_SEG

MOV DS,AX

MOV AX,E_SEG

MOV ES,AX

MOV EAX,DS:AUGEND

ADD EAX,ES:ADDEND

MOV DS:SUM,EAX

C_SEG ENDS

END START ;结束

19.需要加上PTR伪操作的有:(2)(3)(4)

第五章

1.程序實現:(經DEBUG調試通過)

code segment

main proc far

assume cs:code

start:

mov ah,1h

int 21h

sub al,20h

mov ah,2

mov dl,al

int 21h

main endp

code ends

end start

2.程序實現:(經DEBUG調試通過)

code segment

assume cs:code

mov ah,1h

int 21h

sub al,1h

mov cl,3

again:

mov dl,al

mov ah,2

int 21h

inc al

loop again

code ends

end

3.程序實現:(經DEBUG調試通過)

code segment

assume cs:code

mov ax,0f0feh

mov cl,4 ;把AX的最高四位

rol ax,cl ;移到最右面

and al,0fh ;再把AL的高四位清0

mov dl,al

rol ax,cl

and al,0fh

mov cl,al

rol ax,cl

and al,0fh

mov bl,al

rol ax,cl

and al,0fh

code ends

end

4.程序實現:(經DEBUG調試通過~~)

data segment

string1 db 20,0,20 dup (?)

string2 db 20,0,20 dup (?)

string3 db 'please input string1!','$'

string5 db 'match!','$'

string6 db 'nomatch!','$'

data ends

code segment

MAIN PROC FAR

assume cs:code, ds:data

start:

push ax ;保護現場

push bx

push cx

push dx

mov ax,data

mov ds,ax

mov dx,offset string3

call info ;在屏幕上輸出提示信息

mov dx,offset string1

call input ;在第一緩衝區輸入字符串

mov dx,offset string4

call info ;在屏幕上輸出提示信息

mov dx,offset string2

call input ;在第二緩衝區輸入字符串

call check ;比較兩個字符串

pop dx ;寄存器出棧

pop cx

pop bx

pop ax

main endp

;輸入字符串到緩衝區的過程

INPUT PROC NEAR

push ax

mov ah,0AH

int 21h

pop ax

ret

INPUT ENDP

;在屏幕上輸出提示信息的過程

INFO PROC NEAR

push ax

mov ah,9

int 21h

call crlf ;回車換行

pop ax

ret

INFO ENDP

;回車換行的過程

CRLF PROC NEAR

push dx

push ax

mov dl,0dh

mov ah,2

int 21h

mov dl,0ah

mov ah,2

int 21h

pop ax

pop dx

ret

CRLF ENDP

;比較兩字符串是否相同並且在屏幕上輸出相應信息的過程CHECK PROC NEAR

push ax

push cx

push si

push di

mov ax,0

mov cx,0

mov cl,string1+1

mov si,2

mov di,2

re:

mov al,string1[di]

cmp al,string2[si]

jnz no

inc di

inc si

dec cx

jnz re

mov dx ,offset string5

call info

jmp exit

no:

mov dx,offset string6

call info

exit:

pop di

pop si

pop cx

pop ax

ret

CHECK ENDP

code ends

end start

5.程序實現:(經DEBUG調試通過)

data segment

info1 db 'PLEASE INPUT A NUMBER','$' ;提示信息,下同

info2 db 'WRONG NUMBER! PLEASE INPUT ANOTHER NUMBER!','$' ;如果鍵入非數字值,報錯,並提示輸入新的數字

data ends

code segment

MAIN PROC FAR

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov dx,offset info1

call info ;提示輸入一個數字

call input ;輸入過程

call check ;檢查是否非數字字符

call bell ;響鈴N次,N為鍵入數字

ret

MAIN ENDP

;在屏幕上輸出提示信息的過程

INFO PROC NEAR

push ax

mov ah,9h

int 21h

call crlf

pop ax

ret

INFO ENDP

;回車換行的過程

CRLF PROC NEAR

push ax

push dx

mov dl,0dh

mov ah,2h

int 21h

mov dl,0ah

mov ah,2h

int 21h

pop dx

pop ax

ret

CRLF ENDP

;輸入的過程

INPUT PROC NEAR

mov ah,1

int 21h

ret

INPUT ENDP

;檢查是否非數字字符的過程~

CHECK PROC NEAR

push dx

cmp al,30h ;如果鍵入的字符ASCII值小於0的ASCII值30H,

jb WRONG ;剛轉入WRONG,作錯誤處理

cmp al,39h ;如果鍵入的字符ASCII值大於9的ASCII值39H,ja WRONG ;則轉入WRONG,作錯誤處理

mov cl,al ;把合法的數字ASCII值放入CL中

jmp next

;錯誤處理過程,提示,並等待用戶鍵入新值

WRONG:

mov dx,offset info2

call info

call input

call check

next:

pop dx

ret

CHECK ENDP

;根據用戶鍵入的數字,響鈴相應的次數

BELL PROC NEAR

push dx

sub cl,30h ;鍵入數字的ASCII值減去30,才能成為次數

mov dl,7h

mov ah,2

re:

int 21h

dec cx

jnz re

pop dx

ret

BELL ENDP

CODE ENDS

END START

6.程序實現。(末经调试)

.model small

.data

m db dup (20個數)

n db 20,0,20 dup (?) ;用于存放负数的最大容量为20的数组 p db 20,0,20 dup (?) ;同上,用于存放正数

.code

main proc far

start:

mov ax,@data

mov ds,ax

call check_store ;判斷數的正負並存入相應數組

call display ;在屏幕上顯示

main endp

check_store proc near

push ax

push bx

push cx

mov cx,20 ;循環次數放入CX

cld ;使SI向增加的方向移動

lea si,m ;M的偏移地址放入SI

again:

mov al,[si] ;M中的數依次放入AL中

cmp al,0 ;並且依次和0比較

jl store_in_n ;如果小於0,則存入負數組

jg store_in_p ;如果大於0,剛存入正數組

dec cx

jz exit

store_in_n :

push bx

mov bl,n[1] ;N中已有數的個數放入BL中,

mov n[bl+1],al ;把AL中負數存入數組N的最後一個數字的下一字節 pop bx

jmp again

store_in_p

STORE—IN—P

push bx

mov bl,p[1]

mov p[bl+1],al

pop bx

jmp again

exit:

pop cx

pop bx

pop ax

ret

check_store endp

display proc near

push cx

lea si,n[2]

mov cl,n[1] ;數組N中數的個數放入CL

cld

mov ah 2

re_display_n: ;依次顯示各個負數

mov dl,[si]

int 21h

mov dl,20h ;各個數之間用空格間隔

int 21h

dec cl

jnz re_display_n

;下面四行用來回車和換行

mov dl,0dh

int 21h

mov dl,0ah

int 21h

;同上面負數的顯示,

lea si,p[2]

mov ch,p[1]

cld

re_display_p:

int 21h

mov dl,20h

int 21h

dec ch

jnz re_display_p

pop cx

ret

display endp

end start

7.程序實現。(未調試)

.model small

.data

data db 100d dup (100個數).

.code

start:

mov ax,@data

mov ds,ax

mov cx,101d ;循環次數

mov bl,0feh ;初始化BX為最大的八位無符號正數 mov si,offset data

cld

again:

dec cx

jz finish ;全部判斷完成

mov al,[si]

cbw

div 2 ;每個數除以2

cmp al,0 ;佘數不為0的,不是偶數

jne again

cmp bl,[si] ;每次比較,

jl again ;較小的數,

mov bl,[si] ;代替BX中原來的數

jmp again

finish:

mov ax,0

mov al,bl ;把最小偶數放到AX中

end start

8.程序實現。(未調試)

.model samll

.code

start:

mov ch,9 ;比較次數放入CH

mov cl,2 ;每次AX循左移的次數放入CL

课后习题答案

第一章 液压传动概述 液压传动系统由哪几部分组成各组成部分的作用是什么 解答:液压传动由以下四部分组成: (1)动力元件(液压泵):它是把原动机输出的机械能转换成油液压力能的元件。作用:给液压系统提供压力油,是液压系统的心脏。 (2)执行元件:包括液压缸和液压马达等。 作用:把油液的压力能转换成机械能以驱动工作机构的元件。 (3)控制元件:包括压力、方向、流量控制阀。作用:是对液压系统中油液的压力、流量和流动方向进行控制和调节的元件。 (4)辅助元件:除上述三项以外的、液压系统中所需的其它装置。如油箱、滤油器、油管、管接头等。作用:保证液压系统有效工作,寿命长。 第二章 液压泵和液压马达 要提高齿轮泵的压力需解决哪些关键问题通常都采用哪些措施 解答:(1)困油现象: 采取措施:在两端盖板上开卸荷槽。(2)径向不平衡力:采取措施:缩小压油口直径;增大扫膛处的径向间隙; 过渡区连通;支撑上采用滚针轴承或滑动轴承。(3)齿轮泵的泄漏: 采取措施:采用断面间隙自动补偿装置。 齿轮泵的模数 mm m 4=,齿数9=z ,齿宽mm B 18=,在额定压力下,转速min 2000r n =时,泵的 实际输出流量min 30L Q =,求泵的容积效率。 解答:()() 2 2630 0.876.6~7 6.69418200010v t q q q zm bn η-= ===????? YB63型叶片泵的最高压力MPa P 3.6max =,叶片宽度mm B 24=,叶片厚度mm 25.2=δ,叶片数 12=Z ,叶片倾角?=13θ,定子曲线长径mm R 49=,短径mm r 43=,泵的容积效率9.0=v η,机械效率 90.0=m η,泵轴转速min 960r n =,试求:(1) 叶片泵的实际流量是多少(2)叶片泵的输出功率是多少 解答: (1) ()()()()() 22 223 322cos 20.0490.04320.0490.0430.024120.0249600.9cos131.0210v R r q R r bz Bn m s πηφπ-??=--???? ?-?? =--?????????? =? (2) 633 6.310 1.0210 6.4210N pq -==???=?出 斜盘式轴向柱塞泵的斜盘倾角?=20β,柱塞直径mm d 22=,柱塞分布圆直径mm D 68=,柱塞数7=z ,机械效率90.0=m η,容积效率97.0=v η,泵转速min 1450r n =,泵输出压力MPa p 28=,试计算:(1)平

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

汇编语言程序的设计试卷与答案

汇编语言程序设计试卷 一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分) 1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。 ① 无符号十进制数136 ② 带符号十进制数-120 ③ 压缩型BCD码十进制数88 ④ 8位二进制数-8的补码表示 2.指令指针寄存器是()。 ① IP ② SP ③ BP ④ PSW 3.当执行指令ADD AX,BX后,若AX的内容为2BA0H, 设置的奇偶标志位PF=1,下面的叙述正确的是()。 ① 表示结果中含1的个数为偶数 ② 表示结果中含1的个数为奇数 ③ 表示该数为偶数 ④ 表示结果中低八位含1的个数为偶数 4.完成将累加器AL清零,并使进位标志CF清零, 下面错误的指令是()。 ① MOV AL,00H ② AND AL,00H

③ XOR AL,AL ④ SUB AL,AL 5.下列指令执行后总是使CF=0,OF=0的是()。 ① AND ② NEG ③ NOT ④ INC 6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。 ① MOV AX,BX ② MOV BX,AX ③ PUSH AX POP BX ④ MOV CX,AX MOV AX,BX MOV BX,CX 7.设AH=0,AL=06H,BL=09H,执行指令 ADD AL,BL AAA 之后,其结果应是()。 ① AH=01,AL=05 ② AH=1 AL=15 ③ AH=0 AL=0FH ④ AH=0 AL=05 8.设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为

汇编语言程序设计期末考试试卷及参考答案

【汇编语言程序设计】期末考试-试卷及参考答案

执行上述两条指令后,正确的结果是( B )。 A.(AX)=1001H; B.(AX)=0FFFH; C.(AX)=1000H; D.(AX)=0111H。 6.串指令中的目的操作数地址一定是由____A_ _提供。()A.ES:[DI] ; B.SS:[BP]; C.DS:[SI] ; D.CS:[IP]。 7.将DX的内容除以2,正确的指令是( C )。 A.DIV 2 ; B.DIV DX,2 ; C.SAR DX,1; D.SHL DX,1。 8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。 A.目标程序; B.汇编语言源程序; C.可执行程序; D.汇编程序。 9.用一条指令仅实现将AX←BX+SI的方法是( D )。 A.XCHG AX,[BX][SI] ; B.MOV AX,[BX+SI]; C.LEA AX,BX[SI] ; D.LEA AX,[BX][SI]。 10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。 A.1FFFH; B.1998H; C.1FFEH; D.2002H。 2. C 二、指出下列指令的出错原因,并改正。(每小题2分,共12分) 1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX 2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX 3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为 MOV BX,DS ADD AX,BX 4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为 MOV SI,CX TEST BX,[SI] 5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX] SUB AX,[BP+SI] 或:MOV AL,[BX] SUB AL,[BP+SI] 6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL 三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分) 1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并

图论 张先迪 李正良 课后习题答案

习题一 作者---寒江独钓 1.证明:在n 阶连通图中 (1) 至少有n-1条边; (2) 如果边数大于n-1,则至少有一条闭迹; (3) 如果恰有n-1条边,则至少有一个奇度点。 证明: (1) 若G 中没有1度顶点,由握手定理: ()2()21v V G m d v n m n m n ∈= ≥?≥?>-∑ 若G 中有1度顶点u ,对G 的顶点数作数学归纳。 当n=2时,结论显然;设结论对n=k 时成立。 当n=k+1时,考虑G-u,它仍然为连通图,所以,边数≥k-1.于是G 的边数≥k. (2) 考虑G 中途径: 121:n n W v v v v -→→→→L 若W 是路,则长为n-1;但由于G 的边数大于n-1,因此,存在v i 与v j ,它们相异,但邻接。于是: 1i i j i v v v v +→→→→L 为G 中一闭途径,于是 也就存在闭迹。 (3) 若不然,G 中顶点度数至少为2,于是由握手定理: ()2()21v V G m d v n m n m n ∈= ≥?≥?>-∑ 这与G 中恰有n-1条边矛盾! 2.(1)2n ?12n 2?12n ?1 (2)2n?2?1 (3) 2n?2 。 证明 :u 1的两个邻接点与v 1的两个邻接点状况不同。所以, 两图不同构。 4.证明下面两图同构。 u 1 v 1

证明:作映射f : v i ? u i (i=1,2….10) 容易证明,对?v i v j ∈E ((a)),有f (v i v j,),=,u i,u j,∈,E,((b)) (1≤ i ≤ 10, 1≤j ≤ 10 ) 由图的同构定义知,图(a)与(b)是同构的。 5.指出4个顶点的非同构的所有简单图。 分析:四个顶点的简单图最少边数为0,最多边数为6,所以 可按边数进行枚举。 (a) v 2 v 3 u 4 u (b)

汇编语言学习知识程序设计实验

目录 目录 (1) 实验一利用DEBUG熟悉常用指令的使用 (2) 一、实验目的 (2) 二、示例 (2) 三、实验题 (2) 实验二汇编程序和连接程序的使用 (6) 一、实验目的。 (6) 二、示例。 (6) 三、实验题。 (8) 实验三顺序结构程序设计 (11) 一、实验目的 (11) 二、示例 (11) 三、实验题 (12) 四、实验报告 (15) 实验四循环结构程序设计 (16) 一、实验目的 (16) 二、示例 (16) 三、实验题 (18) 实验五分支结构程序设计 (21) 一、实验目的 (21) 二、示例 (21) 三、实验题 (22) 实验六子程序设计 (29) 一、实验目的 (29) 二、实验题 (29)

实验一利用DEBUG熟悉常用指令的使用 一、实验目的 熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。 二、示例 请分别用一条汇编语言指令完成如下功能:(过程略)。 1.用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 ADD AL,[BX][SI] 2.用位移量为0520H的直接寻址方式把存储器中的一个字与3412H相加,并把结果送回该存储单元。 ADD WORF PTR [0520H],3412H 三、实验题 1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执行完后AX寄存器的内容。要求输入指令,相应存储单元的内容要事先设置,单步 P执行,观察执行结果。 (设置存储器的值)

汇编语言程序设计期末考试题

汇编语言程序设计期末考试题 学院(系):学号: 姓名: 计分: 一、项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号 内。每小题1分,共10分) 1.CPU发出的访问存储器的地址是( ) A.物理地址 B.偏移地址C.逻辑地址D.段地址 2.将高级语言的程序翻译成机器码程序的实用程序是( ) A.编译程序 B.汇编程序 C.解释程序 D.目标程序 3.DEC BYTE PTR[BX]指令中的操作数的数据类型是( ) A.字 B.双字C.字节D.四字 4.在下列语句中,BUFFER称为( ) BUFFER DB 01H,0AH A.符号 B.变量 C.助记符D.标号 5.串操作指令中,源串操作数的段地址一定在( )寄存器中。 A. CS B. SS C. DS D. ES 6.使计算机执行某种操作的命令是( ) A.伪指令B.指令 C.标号D.助记符 7.将数据5618H存放在存储单元中的伪指令是( ) A. DATA1 DW 1856H B. DATA1 DB 18H,56H C. DATA1EQU 5618H D. DATA1 DB 18H,00H,56H,00H 8.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( ) A.1400H B. 77F8H C. 0000H D. 0FFFFH 9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍 采用的是( )码。 A. BCD码 B.二进制码 C.ASCII码D.十六进制码 10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语 言称为( ) A.汇编语言 B.高级语言 C.机器语言 D.低级语言 二、填空题(每空1分,共20分) 1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是______。 2.通常所说的计算机系统包括________和________两大部分。 3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是________、_____ ___、________、________。 4.现有AX=2000H,BX=1200H, DS=3000H, DI=0002H, (31200H)=50H,(31201H)=02H, (31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标 志位ZF、CF的值。 A.ADDAX,1200H;问AX=________H,ZF=________

汇编语言程序设计期末考试题

汇编语言程序设计期末考试题 学院(系):________ 学号:__________ 姓名:____________ 计分:_ 项选择题(在每小题的四个备选答案中,选岀一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共10分) 1.CPU发出的访问存储器的地址是() A.物理地址 B.偏移地址 C.逻辑地址 D.段地址 2.将高级语言的程序翻译成机器码程序的实用程序是() A.编译程序 B.汇编程序 C.解释程序 D.目标程序 3.DEC BYTE PTR: BX]指令中的操作数的数据类型是() A.字 B. 双字 C. 字节 D. 四字 4.在下列语句中,BUFFER称为() BUFFER DB 01H 0AH A.符号 B.变量 C.助记符 D.标号 5.串操作指令中,源串操作数的段地址一定在()寄存器中。 A.CS B. SS C. DS D. ES 6.使计算机执行某种操作的命令是() A.伪指令 B.指令 C.标号 D.助记符 7.将数据5618H存放在存储单元中的伪指令是() A.DATA1 DW 1856H B. DATA1 DB 18H,56H C. DATA1 EQU 5618H D. DATA1 DB 18H ,OOH, 56H,00H 8.若AX=3500H,CX=56B8H 当AND AX CX指令执行后,AX=() A.1400H B. 77F8H C.0000H D. 0FFFFH 9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用 的是()码。 A. BCD码 B. 二进制码 C.ASCII码 D.十六进制码 10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为() A.汇编语言 B.高级语言 C.机器语言 D. 低级语言 填空题(每空1分,共20分) 1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是 2.通常所说的计算机系统包括_________ 和_________ 两大部分。 3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是 _____________ 4.现有AX=2000H, BX=1200H, DS=3000H, DI=0002H, (31200H)=50H, (31201H)=02H, (31202H)=40H, 请写岀下列各条指令独立执行完后有关寄存器及存储单元的内容,并指岀标志位ZF、CF的值。 A.ADD AX 1200H;问AX= __________ H ZF= _______ B.SUB AX BX 问AX= _________ H ZF= ________

课后习题及答案

1 文件系统阶段的数据管理有些什么缺陷试举例说明。 文件系统有三个缺陷: (1)数据冗余性(redundancy)。由于文件之间缺乏联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储。 (2)数据不一致性(inconsistency)。这往往是由数据冗余造成的,在进行更新操作时,稍不谨慎,就可能使同样的数据在不同的文件中不一样。 (3)数据联系弱(poor data relationship)。这是由文件之间相互独立,缺乏联系造成的。 2 计算机系统安全性 (1)为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据; (2)防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。 3. 自主存取控制缺点 (1)可能存在数据的“无意泄露” (2)原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记 (3)解决:对系统控制下的所有主客体实施强制存取控制策略 4. 数据字典的内容和作用是什么 数据项、数据结构 数据流数据存储和加工过程。 5. 一条完整性规则可以用一个五元组(D,O,A,C,P)来形式化地表示。 对于“学号不能为空”的这条完整性约束用五元组描述 D:代表约束作用的数据对象为SNO属性; O(operation):当用户插入或修改数据时需要检查该完整性规则; A(assertion):SNO不能为空; C(condition):A可作用于所有记录的SNO属性; P(procdure):拒绝执行用户请求。 6.数据库管理系统(DBMS)

:①即数据库管理系统(Database Management System),是位于用户与操作系统之间的 一层数据管理软件,②为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更 新及各种数据控制。 DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面 向对象型DBMS。 7.关系模型:①用二维表格结构表示实体集,②外键表示实体间联系的数据模型称为关系模 型。 8.联接查询:①查询时先对表进行笛卡尔积操作,②然后再做等值联接、选择、投影等操作。 联接查询的效率比嵌套查询低。 9. 数据库设计:①数据库设计是指对于一个给定的应用环境,②提供一个确定最优数据模 型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起 既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管 理系统所接受,同时能实现系统目标,并有效存取数据的数据库。 10.事务的特征有哪些 事务概念 原子性一致性隔离性持续性 11.已知3个域: D1=商品集合=电脑,打印机 D3=生产厂=联想,惠普 求D1,D2,D3的卡尔积为: 12.数据库的恢复技术有哪些 数据转储和和登录日志文件是数据库恢复的

汇编语言程序设计试题A卷

陕西电子信息职业技术学院考试试卷(A) 2011至2012学年度第一学期 期末 班级: 09成教 课程: 汇编语言程序设计 题 号 一 二 三 四 五 合分人 分 数 总 分 (考试时间:120分钟 满分100分) 一、单项选择题(本大题共10小题,每小题2分,共20分) 1. 计算机硬件中最核心的部件是( )。 A. 运算器 B. 主存储器 C. CPU D. 输入 / 输出设备 2. 指令指针寄存器(IP )中存放的内容( )。 A. 指令 B. 指令地址 C. 操作数 D. 操作数地址 3. 寄存器间接寻址方式中,要寻找的操作数位于( )中。 A. 通用寄存器 B. 内存单元 C. 段寄存器 D. 堆栈 4. I/O 端口的编址方式分为统一编址和( )。 A. 独立编址 B. 选择编址 C. 设置编址 D. 控制编址 5. 汇编语言程序中可执行的指令位于( )中。 A. 数据段 B. 堆栈段 C. 代码段 D. 附加数据段 6. 循环结构设计中,要考虑的核心问题是( )。 A. 循环的控制 B. 选择循环结构 C. 设置循环参数初始值 D. 修改循环控制参数 7. 在汇编中用于管理和控制计算机相关功能的指令是( )。 A. 伪指令 B. 机器指令 C. 宏指令 D. 目标指令 班级 姓名 学号 — — — — — — — — — — — — — — — — 密 — — — — — — — — — 封 — — — — — — — — — — 线 — — — — — — — — — — — — — — — —

8. 识别中断源的方法包括查询中断和()共两种类型。 A. 指令中断 B. 故障中断 C. 矢量中断 D. 实时时钟中断 9. CPU与I/O设备之间需要传输的信息通常包括()、状态信息 和控制信息。 A. 编址信息 B. 格式信息 C. 中断信息 D. 数据信息 10. 一般情况下,汇编源程序应由数据段、()和代码段共三个逻 辑段组成。 A. 逻辑段 B. 堆栈段 C. 指令段 D. 类型段 二、名词解释(本大题共5小题,每小题4分,共20分) 11. 微处理器: 12. 寻址方式: 13. 伪指令: 14. 中断源:

汇编语言程序设计期末复习题及答案

《汇编语言程序设计》期末复习题及答案 一、选择(30题) 1.下列是8位带符号二进制数的补码,其中最大的是( B )。 B、00000001 2.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现( C ) C、占内存空间大,但速度快 3.数据定义为:EE DB 3,4 CC DW 3456H,6789H 执行指令“MOV CX,WORD PTR EE+1”后,(CX)= ( B ) B、5604H 4.有如下指令序列: MOV AL,95H MOV CL,2 SAR AL,CL 上述指令序列执行后,AL的内容是( D ) D、0E5H 5.设A=18610,B=2738,C=0BB16,把这三个数看成无符号数,则它们之间的关系是( D )D、A

A、ENDP 11.用来存放下一条将要执行的指令代码段地址的段寄存器是( D ) D、CS 12.假定(SS)=1000H,(SP)=0100H,(AX)=5609H,执行指令PUSH AX后,存放数据56H的物理地址是( D ) D、100FFH 13.执行“SUB AX,[BP][DI]”指令,取源操作数时,使用的物理地址表达式是( A ) A、16*SS+BP+DI 14.设AX中有一带符号数8520H,执行“SAR AX,1”指令后,AX中的值是( C ) C、0C290H 15.设(BX)=1234H,(DS)=2000H,(21234H)=5678H,则指令“LEA SI,[BX]”执行后的结果是:( B ) B、SI=1234H 16.测试BL中的数是否为负数,若为负数则转移至AA1处,横线处的指令应为( A ) A、JNE 17.设DF=0,(SI)=20H,(CX)=10,执行“REP LODSW”指令后,SI中的内容是( C ) C、34H 18.在程序执行过程中,IP寄存器中始终保存的是( B ) B、下一条指令的首地址 19.设SP初值为2000H,执行指令“POP AX”后,SP的值是( A ) A、2002H 20.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( A ) A、1400H 21.汇编源程序时,出现语法错误的语句是( A ) A、MOV DS,1200H 22.将数据1234H存放在存储单元中的伪指令是( C ) C、DATA1 DB 34H,12H 23.下面指令执行后,可能改变AL寄存器内容的指令是( D ) D、AND AL,BL

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

张清华图论课后题答案.

第1章 图论预备知识 1.1 解:(1) p={φ,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}} (2) p={,{a},{{b,c}},{a,{b,c}}} (3) p={,{}} (4) p={,{},{{}},{,{}}} (5)p={,{{a,b}},{{a,a,b}},{{a,b,a,b}},{{a,b},{a,a,b}},{{a,b},{a,b,a,b}},{{a,b},{a,a,b},{a,b,a,b}}} 1.2 解:(1) 真 (2) 假 (3)假 (4)假 1.3 解:(1) 不成立,A={1} B={1,2} C={2} (2) 不成立,A={1} B={1,2} C={1,3} 1.4 证明:设(x,y)∈(A ∩B)X(C ∩D) 说明x ∈A ∩B,y ∈C ∩D 由于 x ∈A,y ∈C 所以 (x,y) ∈A X C 由于x ∈B,y ∈D 所以 (x,y) ∈B X D 所以 (x,y) ∈(A X C )∩(B X D ) 反过来,如果(x,y )∈(A X C) ∩(B X D ) 由于 (x,y) ∈(A X C )所以 x ∈A,y ∈C 由于 (x,y) ∈(B X D )所以x ∈B,y ∈D 所以x ∈(A ∩B) y ∈(C ∩D) 所以 (x,y) ∈(A ∩B)X(C ∩D) 所以(A ∩B)X(C ∩D)= (A X C) ∩(B X D ) 1.5 解:Hasse 图 φφφφφφφφφ

极大元{9,24,10,7} 极小元{3,2,5,7} 最大元{24} 最小元{2} 1.6 解 (2)关系图为: (3)不存在最大元,最小元为{2} 1.7 解:(1)R={<1,1>,<2,2>,<3,3>,<4,4>,<1,2>,<2,1>,<2,3>,<3,2>} (2)略 (3)I A ?R 故R 是自反的。 <1,2>∈R <2,3>R 但是<1,3> ?R 故不满足传递性 1.8 解:(1) 不成立 A={1} B={2} C={3} D={4} 则左式={<1,3>,<1,4>,<2,3>,<2,4>} 右式={<1,3>,<2,4>} (2) 不成立 A={1,3} B={1} C={2,4} D={2} 则左式={<3,4>} 右式={<1,4>,<3,2>,<3,4>} (3) 不成立 A={1} B={2} C={3} D={4} 则左式={<1,3>,<1,4>,<2,3>,<2,4>} 右式={<1,3>,<2,4>} (4) 成立 证明:设 ∈(A-B)X C ?x (A-B)∧ y C ?x A ∧x B ∧ y C A X C ∧ B X C (A X C)-(B XC) 故得 (A-B )X C=(A X C )-(B X C ) ∈∈∈∈∈∈?∈∈?∈

汇编语言程序设计实验篇emu

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.sodocs.net/doc/0119416307.html, TEMPLATE程序 本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。 在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。 输入全部指令后,单击按钮,保存相应的程序段。 2.EXE TEMPLATE程序 本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。 在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

全国1月高等教育自学考试汇编语言程序设计试题历年试卷

做试题,没答案?上自考365,网校名师为你详细解答! 全国2005年1月高等教育自学考试 汇编语言程序设计试题 课程代码:02321 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填 在题干的括号内。每小题1分,共16分) 1.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是( )。 A.2025∶0F2A B.2108∶00EA C.2000∶017A D.2100∶117A 2.某程序装入内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是( )字节。 A.2K B.4K C.8K D.16K 3.以寄存器DI间接寻址的存储器字节单元内容加1的指令是( )。 A.INC [DI] B.INC DI C.INC BYTE PTR[DI] D.ADD [DI],1 4.有语句:COUNT EQU 256,下列四种叙述中,正确的是( )。 A.COUNT是变量 B.COUNT占用一个字节存储单元 C.COUNT是符号常数 D.COUNT占用二个字节存储单元 5.下面指令中,源操作数的寻址方式为立即寻址的是( )。 A.MOV AX,OFFSET A B.MOV AX,A C.MOV AX,A+1 D.MOV AX,A[BX] 6.已知SP=2110H,执行POP AX后,SP寄存器的值是( )。 A.2111H B.2112H C.210FH D.210EH 7.将AX中有符号数除以2的正确指令是( )。 A.SHR AX,1 B.SAR AX,1 C.ROR AX,1 D.RCR AX,1 8.比较BX和SI中的两个存储器地址,若BX≥SI转向HIGH的正确指令是( )。 A.JAE HIGH B.JBE HIGH C.JEG HIGH D.JLE HIGH 9.指令SCASB操作数的段地址一定在( )寄存器中。 A.CS B.DS C.ES D.SS 10.有数据定义语句BUF DW 0ABH,1,10 DUP(3 DUP(1,0),2)汇编后,为变量BUF分配 的存储单元字节数是( )。 A.48H B.90H C.120 D.60 11.下列指令执行后,不改变AL寄存器内容的指令是( )。 1

1 《邓稼先》课后习题参考答案

1 《邓稼先》课后习题参考答案 思考探究 一、通读全文,把握文意,回答下列问题。 1.初读课文时,哪些句段最让你感动?反复细读后,再想想这些内容是否最 能体现全文所要表达的思想情感。 2.找出文中表现奥本海默与邓稼先两人不同个性、品质的词语及细节,思考 作者为什么要进行对比,通过对比得出了怎样的结论。 参考答案:1.作者饱含真情,于字里行间高度赞扬了邓稼先深沉的爱国主义精神和将个人生命奉献给祖国国防事业的崇高情怀。这样的句段很多,如:“对这一转变做出了巨大贡献的,有一位长期以来鲜为人知的科学家——邓稼先。”“一次井下突然有一个信号测不到了,大家十分焦虑,人们劝他回去,他只说了一句话:‘我不能走。’”…… 2.文中的奥本海默与邓稼先两人的个性、品质截然不同。奥本海默是 锋芒毕露,读研究生时就常打断别人的报告,即便到了中年,成了名人,有时还会这样。而邓稼先“是一个最不要引人注目的人物”“忠厚平实”“真诚坦白,从不骄人”“没有小心眼儿,一生喜欢‘纯’字所代表的品格”“最有中国农民的朴实气质”;“他没有私心,人们绝对相信他”,“文革”中能说服两派群众组织,能说服工宣队、军宣队。作者把奥本海默与邓稼先进行对比,鲜明地突出邓稼先的精神品质,自然而然地得出结论:“邓稼先是中国几千年传统文化孕育出来的有最高奉献精神的儿子”“邓稼先是中国共产党的理想党员”。 二、有感情地朗读课文第五部分,想一想:这部分开头引用《吊古战场文》, 有什么作用?结尾处又引用儿时学到的“‘五四’时代的一首歌”,表达了怎样的情感? 参考答案:课文第五部分开头引用《吊古战场文》,把读者引入中国历史的深处,让人从中国传统文化的角度去思考。结尾处引用自己儿时学到的“‘五四’时代的一首歌”,说明了邓稼先就是一个典型的中国男儿,他有着为祖国而献身的崇高的精神品质。

汇编语言程序设计试题

汇编语言程序设计试题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.设SS=2050H,SP=0140H,则栈顶存贮单元的物理地址是( A ) A.20640H B.2063EH C.2063FH D.21900H 2.使用DOS功能调用时,子程序编号应放在( B ) A.AL B.AH C.AX D.任意指定 3.没有 ..语法错误的输出指令是( B ) P76 A.OUT AX,30H B.OUT DX,AL C.OUT AL,DX D.OUT 30H,AH 4.用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是( B ) A.MOV AX,89 B.MOV AX,0809H C.MOV AX,89H D.MOV AX,0809 5.设AX=8765H,DX=4321H,执行CWD指令后,DX中的内容是( B ) P117 A.4321H B.0FFFFH C.8000H D.0001H 6.设CL=05H,要获得CL=0AH,可选用的指令是( A) A.XOR CL,0FH B.NOT CL C.OR CL,0AH D.AND CL,0FH 7.假设执行ADD指令后AL=8CH,再执行DAA指令,AL中的值是( A ) A.92H B.0104H C.74H D.8CH 8.MOV AL,79H ADD AL,B1H 上面指令执行后,设置的标志位CF和ZF的值是( D ) A.CF=0,ZF=1 B.CF=l,ZF=1 C.CF=0,ZF=0 D.CF=1,ZF=0 9.TEST DL,55H P123 JZ NEXT NEXT:…… … 上述程序段,执行JZ指令时能产生转移的情况是( D ) A.DL>55H B.DL<55H C.DL=55H D.DL中第0、2、4、6位均为0 10.假设AL=28H, 执行ROL AL,1 指令之后的情况是( D ) P125 A.AL=14H, CF=1 B.AL=50H, CF=1 C.AL=14H, CF=0 D.AL=50H, CF=0 11. 98的BCD码是(B) A)10011001 B) 10011000 C) 10011010 D) 10001010 12. –0110110 的补码是(A) A) 11001010 B) 11001001 C) 10110110 D) 00110110

相关主题