汇编第五章课后题答案

汇编第五章课后题答案
汇编第五章课后题答案

1.从屏幕上输入小写字母,转化为大写字母输出

(解法1)

DATA SEGMENT

MESSAGE DB "ENTER A STRING:",0AH,0DH,'$' MAXLENGTH DB 50,?,50 DUP(?) ;每次最多可以输入49个字符DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE

START:

MOV AX,DATA

MOV DS,AX

LEA DX,MESSAGE ;输出ENTER A STRING

MOV AH,09H

INT 21H

LEA DX,MAXLENGTH ;输入字符串

MOV AH,0AH ;键盘输入到缓冲区,DS:DX=缓冲区首址

INT 21H ;(DS:DX)=缓冲区最大字符数,(DS:DX+1)=实际输入的字符数

MOV AH,02H ;输出回车换行

MOV DL,0AH

INT 21H

MOV AH,02H

MOV DL,0DH

INT 21H

MOV CL,MAXLENGTH+1;把字符的实际长度放入寄存器CL

MOV CH,0

MOV BH,02H

LEA SI,MAXLENGTH+2;取字符串的基地址放入SI

XUN:

MOV AL,[SI]

CMP AL,'Z'

JBE S1 ;小于等于'Z'转移

JMP S3

S1:CMP AL,'A'

JAE DA ;大于等于'A'转移

JMP OUTPUT

DA:ADD AL,20H

JMP OUTPUT

S3:CMP AL,'z' ;小于等于小Z转移

JBE S4

S4:CMP AL,'a' ;大于等于小a转移

JAE XIAO

JMP OUTPUT

XIAO:

SUB AL,32

JMP OUTPUT

OUTPUT:

MOV DL,AL

MOV AH,02H ;显示输出

INT 21H

INC SI

LOOP XUN

MOV AH,4CH

INT 21H

CODE ENDS

END START

(解法2)

;将输入的小写字母转化为大写字母输出,输入回车结束CODE SEGMENT

ASSUME CS:CODE

BEGIN:

MOV AH,01H

INT 21H

CMP AL,0DH ;ASCII OF CARRIAGE RETURN

JE EXIT

CMP AL,61H ;ASCII OF 'a'

JB STOP

CMP AL,7AH ;ASCII OF 'z'

JA STOP

SUB AL,20H

STOP:

MOV DL,AL

MOV AH,2

INT 21H

JMP BEGIN

EXIT:

MOV AH,4CH

INT 21H

RET

CODE ENDS

END BEGIN

2.输入一个字符,找出它的前导字符和后续字符,并按顺序显示这三个字符.

(解法1)

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE

START:

PUSH DS

XOR AX,AX

PUSH AX

MOV AH,01H

INT 21H

CMP AL,61H

JB EXIT

CMP AL,7AH

JA EXIT

MOV CL,AL

DEC AL

MOV DL,AL

MOV AH,02H

INT 21H

MOV DL,CL

MOV AH,02H

INT 21H

AND AL,01H

INC CL

MOV DL,CL

MOV AH,02H

INT 21H

EXIT:

MOV AX,4C00H

INT 21H

RET

MAIN ENDP

CODE ENDS

END START

(解法2)

.MODEL SMALL

.STACK 200H

.DATA

imsg db 'Input:$' ;输入提示信息

omsg db 0Dh,0Ah,'Output:$' ;输出提示信息string db 3 dup(0),'$' ;存放三个字符

.CODE

START:

mov ax,@data

mov ds,ax

lea dx,imsg

mov ah,9

int 21h

mov ah,1

int 21h

lea di,string

dec al

mov cx,3

s:

mov [di],al

inc di

inc al

loop s

lea dx,omsg

mov ah,9

int 21h

lea dx,string

mov ah,9

int 21h

MOV AH,07H

INT 21H

MOV AX,4C00H

INT 21H

END START

3.将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL,BL,CL,DL中

.MODEL SMALL,C

.CODE

.STARTUP

MOV AX,3456H

MOV BX,AX

MOV CL,4

ROL AX,CL

MOV BX,AX

AND AL,0FH ;AL中是15,14,13,12

ROL BX,CL

MOV DX,BX

AND BL,0FH ;BL中是11,10,9,8

AND AH,0FH

MOV CH,AH ;CH中是7,6,5,4

MOV CL,CH

AND DH,0FH ;DH中是3,2,1,0

MOV DL,DH

.EXIT 0

END

4.试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示'MATCH',若不相同则显

示'NOT MATCH'.

.MODEL SMALL

.DATA

STRING1 DB "LDSKFJSLDKF"

LENG1 EQU $-STRING1

STRING2 DB "LDSKFJSLDKP"

LENG2 EQU $-STRING2

MSG1 DB "MATCH",24H

MSG2 DB "NOT MATCH",24H

.CODE

MOV AX,@DATA

MOV DS,AX

MOV ES,AX

MOV BX,LENG1

MOV CX,LENG2

CMP BX,CX

JNZ NOT_MATCH

LEA SI,STRING1

LEA DI,STRING2

CLD

REPZ CMPSB

JZ _MATCH

NOT_MATCH:

LEA DX,MSG2

MOV AH,09H

INT 21H

JMP _EXIT

_MATCH:

LEA DX,MSG1

MOV AH,09H

INT 21H

_EXIT:

MOV AH,07H

INT 21H

MOV AX,4C00H

INT 21H

END

5.要求能从键盘接收一个个位数,然后响铃N次(响铃的ASCII码为07) .MODEL SMALL

.DATA

MSG DB "YOUR INPUT IS NOT 1-9!",24H .CODE

.STARTUP

MOV AH,0

INT 16H ;接收一个键盘输入

CMP AL,31H

JB ERROR

CMP AL,39H

JA ERROR

MOV CL,AL

SUB CL,30H

CYCLE:

MOV DL,7

MOV AH,09H

INT 21H

MOV AH,07H ;按一下键就响一下铃声

INT 21H

LOOP CYCLE

JMP _EXIT

ERROR:

LEA DX,MSG

MOV AH,09H

INT 21H

MOV AH,07H

INT 21H

_EXIT:

.EXIT 0

END

6.编写程序,将一个包含有20个数据的数组M分成两个数组,正数数组P 和负数数组N,并分别把这两个数组中数据的

个数显示出来.

.MODEL SMALL,C

.DATA

INDEX DB 12,-20,4,05H,11H,2AH,-11,2,3,09H

DB -3,0,-9,44H,32H,33H,34H,-5,40H,22H

P DB 0,20 DUP(0) ;存放正数

N DB 0,20 DUP(0) ;存放负数

.CODE

DISPLAY PROC NEAR USES AX

AND AH,0FH

.IF AH>= 0AH && AH<= 0FH

ADD AH,07H

.ENDIF

ADD AH,30H

MOV DL,AH

MOV AH,02H

INT 21H

MOV AH,07H

INT 21H

RET

DISPLAY ENDP

.STARTUP

LEA DI,P+1

LEA SI,N+1

LEA BX,INDEX

MOV CX,14H

CYCLE:

CMP BYTE PTR [BX],0

JG NOSIGN

INC AL ;AL中存放负数

MOV DL,BYTE PTR [BX]

MOV BYTE PTR DS:[DI],DL

INC DI

INC BX

LOOP CYCLE

NOSIGN:

INC AH ;AH中存放正数

MOV DL,BYTE PTR [BX]

MOV BYTE PTR DS:[SI],DL

INC SI

INC BX

LOOP CYCLE

MOV P,AH

MOV N,AL

CALL DISPLAY

MOV AH,AL

CALL DISPLAY

.EXIT 0

END

7.试编制一个汇编语言程序,求出首地址为DATA的100D字数组中的最小偶数,并把它存放在AX中.

datarea segment

data dw 10,2,4,8,7,7,69,65,55,89,95

dw 25,39,77,88,25,1,47,88,8,8,77,88,22 count=($-data)/2

num dw 0ffeeh

datarea ends

code segment

main proc far

assume cs:code,ds:datarea

push ds

mov ax,0

push ax

begin:

mov ax,datarea

mov ds,ax

mov bl,2

mov cx,count

lea si,data

A:

mov ax,[si]

mov dx,ax

div bl

cmp ah,0

jne circle

cmp dx,num

jb B

circle:

add si,2

lopa:

loop A

exit:

mov ax,num

ret

B:

mov num,dx

jmp lopa

main endp

code ends

end

8.把AX中存放的16位二进制数K看作是8个二进制的"四分之一字节".试编写一程序,要求数一下值为3(即11B)的四

分之一字节数,并将该数在终端上显示出来.

MOV CX,8

MOV DL,0

NEXT3:ROR AX,1

JNC NEXT1

ROR AX,1

JNC NEXT2

INC DL

NEXT2:LOOP NEXT3

ADD DL, 30H

MOV AH, 2

INT 21H

MOV AH, 4CH

INT 21H

NEXT1:ROR AX, 1

JMP NEXT2

9.试编写一汇编语言程序,求出首地址为DATA的100D字数组中的最小偶数,并把它存放在AX中.

.MODEL SMALL,C

.DATA

_DATA DW 100 DUP(?)

.CODE

.STARTUP

LEA SI,_DATA

MOV AX,[SI]

MOV CX,100

CYCLE:

ADD SI,2

.IF AX< [SI]

MOV AX,[SI]

.ENDIF

LOOP CYCLE

.EXIT 0

10.设有一段英文,其字符变量名为ENG,并以$字符结束,试编写一程序,查对单词SUN在该文中的出现次数,并以格式

"SUN****"显示出次数.

.MODEL SMALL

.386

.DATA

ENG DB 'SUN','SUN JAVA',24H

MESSAGE DB 'SUN:','$' .STACK 100H

.CODE

MAIN PROC FAR START:

PUSH DS

AND AX,0

PUSH AX

MOV AX,@DATA

MOV DS,AX

MOV AX,0H

MOV SI,1H

SUBSI1:

SUB SI,1H

SUBSI2:

SUB SI,1H COMPARES:

ADD SI,1H

MOV DL,ENG[SI]

CMP DL,24H

JE PRINT

CMP DL,53H

JNE COMPARES COMPAREU:

ADD SI,1H

MOV DL,ENG[SI]

CMP DL,55H

JNE SUBSI2 COMPAREN:

ADD SI,1H

MOV DL,ENG[SI]

CMP DL,4EH

JNE SUBSI1

INC AX

JMP COMPARES

PRINT:

LEA DX,MESSAGE

PUSH AX

MOV AH,09H

INT 21H

POP AX

CALL SHOWNUMBER EXIT:

RET

MAIN ENDP SHOWNUMBER PROC NEAR COVERNUM:

DAA

MOV DX,AX

MOV CL,4H

SHOW:

ROL DX,4H

PUSH DX

AND DX,0FH

ADD DX,30H

MOV AH,02H

INT 21H

POP DX

LOOP SHOW

RET

SHOWNUMBER ENDP

END START

11.从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果.

.MODEL SMALL

.386

.CODE

MAIN PROC FAR

START:

PUSH DS

MOV AX,0

PUSH AX

MOV CX,0

INPUT:

MOV AH,1H

INT 21H

COMPARE:

CMP AL,24H

JE PRINT

CMP AL,30H

JL ADDCOUNT

CMP AL,39H

JG ADDCOUNT

ADDCOUNT:

ADD AX,1H

JMP INPUT

CALL SHOWNUMBER

EXIT: RET

MAIN ENDP

SHOWNUMBER PROC NEAR

COVERNUM:

DAA

MOV DX,AX

MOV CL,2H

SHOW:

ROL DL,4H

PUSH DX

AND DL,0FH

ADD DL,30H

MOV AH,02H

INT 21H

POP DX

LOOP SHOW

RET

SHOWNUMBER ENDP

END START

12.有一个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩

余部分补上零.

.model small

.386

.stack 100H

mem dw

12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7 ,5,1,2,0,2,4,0,2,54,0,12,0,

0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7,5,1, 2,0,2,4,0,2,54,0,45,7,5,1,2

,0,2,4,0,2

.code

MAIN PROC FAR

start:

push ds

and ax,0

push ax

mov ax,@data

mov ds,ax

mov ax,0H

mov bx,64H

mov cx,64H

mov si,0FFFEH

repeat:

ADD si,2H

cmp MEM[si],0H

JE calls

loop repeat

calls:

INC ax

call sort

cmp ax,1H

JE lastValue

DEC cx

jmp repeat

exit :

ret

lastValue:

mov mem[bx],0H

DEC cx

jmp repeat

MAIN ENDP

sort PROC NEAR

push cx

push si

sub si,2H

s:

add si,2H

mov dx,mem[si]

mov mem[si+2],dx

loop s

return:

pop si

pop cx

ret

sort ENDP

END start

13.在STRING到STRING+99单元中存放着一个字符串,试编制一程序测试该字符串中是否存在数字.如有,则把CL的第

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

第四章 练习题及参考答案

第四章 静态场的解 练习题 1、设点电荷q 位于金属直角劈上方,其坐标如右图所示,求 (1) 画出镜像电荷所在的位置 (2) 直角劈内任意一点),,(z y x 处的电位表达式 (3) 解:(1)镜像电荷所在的位置如图1所示。 (2)如图2所示任一点),,(z y x 处的电位为 ??? ? ??-+-= 4321011114r r r r q πεφ 其中, ()()()()()()()()2 22422 232 2222 22121212121z y x r z y x r z y x r z y x r +-++= ++++=+++-=+-+-= 2、 两个点电荷Q +和Q -位于半径为a 的接地导体球的直径延长线上,距球心均为 d 。证明镜像电荷构成一位于球心的电偶极子,且偶极矩大小为232d Q a 。 证明:由点电荷的球面镜像法知,+Q 和-Q 的镜像电荷Q Q ''',分别位于球内+Q 和- Q 连线上大小分别为Q D a μ,且分别距球心为D a 2(分别位于球心两侧)。可见Q Q ''',构 成电偶极子,由电偶极距的定义式得偶极距的大小为: 图1 图2 q - q +q -

2 322D Q a D a Q D a ql p =?==。结论得证。 3、已知一个半径为a 的接地导体球,球外一个点电荷q 位于距球心O 为d 处。利用镜像法求球外空间任意点的电位分布。 解:由点电荷的球面镜像法可知,q 的像电荷q '必定位于球内,且在q 与球心0连线上,位置在距离球心设为f 处。建立直角坐标系,由边界条件(?球)=0可取球面上两个特殊点B A ,讨论。B A ,是q 与球心0连线所对应的直径与球面的两个交点。由图示及点电荷的电位公式得: 0)(4)(4)(00=+' ++= f a q a d q A πεπε?, 0) (4)(4)(00=-' +-= f a q a d q B πεπε?。 解此方程组得:d a f q d a q 2 ,=-='。 所以任意场点),(y x P 处的电位为: r q r q ' '+ = 0044πεπε?。 其中r r ',分别是点电荷q 和q ' 到场点P 的距离。 值分别为21 2221 22])[(,])[(y f x r y d x r +-='+-=。 4、半径为a 的不接地导体球附近距球心O 为d (?d a )处有一点电荷q ,用镜像法计算 球外任一点的电位。 解:由点电荷的球面镜像法可知,q 的像电荷除了有q '(即导体球接地时对应的结果, q d a q -=',其位置为d a f 2=),还在球心处有另外一个镜像电荷q '',以保证导体球面电 势不为零的边界条件成立,且可知q q '-=''。 所以任意场点P 处的电位为: r q r q r q ' '''+ ' '+ = 000444πεπεπε?

单片机习题集(含答案)经典

单片机原理及应用习题 第一章绪论 1-1单项选择 1、计算机中最常用的字符信息编码是()。 (A)ASCII (B)BCD码(C)余3码(D)循环码 2、-31D的二进制补码为.( )。 (A)1110000B (B)11100001B (C)01100000B (D)01100001B 3、十进制29的二进制表示为原码()。 (A)11100010B (B) 10101111B (C)00011101B (D)00001111B 4、十进制0.625转换成二进制数是()。 (A)0.101 (B) 0.111 (C)0.110 (D)0.100 5、十六进制数7的ASCII码是()。 (A) 37 (B) 7 (C) 07 (D) 47 6、十六进制数B的ASCII码是()。 (A) 38 (B) 42 (C) 11 (D) 1011 7、通常所说的主机是指() (A)运算器和控制器(B)CPU和磁盘存储器(C)CPU和主存储器(D)硬件和软件 8、使用单片机实现在线控制的好处不包括( ) (A)精确度高(B)速度快(C)成本低(D)能与数据处理结合 1-2填空 1、计算机中常作的码制有、和。 2、十进制29的二进制表示为。 3、十进制数-29的8位补码表示为。 4、是计算机与外部世界交换信息的载体。 5、十进制数-47用8位二进制补码表示为。 6、-49D的二进制补码为。 7、计算机中的数称为,它的实际值叫。 8、单片机的存储器结构形式有普林斯顿结构(又称冯.依诺曼结构)与哈佛结构,MCS-51存储器采用的是结构。

1-3 问答题 1、何谓单片机?单片机与一般微型计算机相比,具有哪些特点? 2、单片机主要应用在哪些领域? 3、为什么80C51系列单片机能成为8位单片机应用主流? 4、举例说明单片机的主要应用领域。 5、二进制数、十进制数、十六进制数各用什么字母尾缀作为标识符?无标识符时表示什么进制数? 6、试比较MCS-51,MSP430,EM78,PIC,M6800及AVP等系列单片机的特点。 第二章 MCS-51单片机的硬件结构与工作原理 2-1 单项选择 1、要MCS-51系统中,若晶振频率屡6MHz,一个机器周期等于( ) μs A 1 B 2 C 3 D 0.5 2、以下不是构成的控制器部件(): A 程序计数器、 B指令寄存器、 C指令译码器、 D存储器 3、以下不是构成单片机的部件() A 微处理器(CPU)、B存储器 C接口适配器(I\O接口电路) D 打印机 4、下列不是单片机总线是() A 地址总线 B 控制总线 C 数据总线 D 输出总线 5、PSW=18H时,则当前工作寄存器是() (A)0组(B)1组(C)2组(D)3组 6、P1口的每一位能驱动() (A)2个TTL低电平负载有(B)4个TTL低电平负载 (C)8个TTL低电平负载有(D)10个TTL低电平负载 7、MCS-51的中断允许触发器内容为82H,CPU将响应的中断请求是( ) (A) T0, (B)T1 (C)串行接口 (D) INT0 8、外部中断0的中断入口地址为() (A)0003H (B)000BH (C)0013H (D)001BH 9、内部定时/计数器T0的中断入口地址为() (A)0003H (B)000BH (C)0013H (D)001BH 10、在中断服务程序中,至少应有一条( )

汇编语言课后习题答案

2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执行完后AX寄存器的内容。 (1)mov ax,1200h (2)mov ax,bx (3)mov ax,[1200h] (4)mov ax,[bx] (5)mov ax,[bx+1100h] (6)mov ax,[bx+si] (7)mov ax,[bx][si+1100h] 〔解答〕 (1)AX=1200H (2)AX=0100H (3)AX=4C2AH;偏移地址=bx=0100h (4)AX=3412H;偏移地址=bx=0100h (5)AX=4C2AH;偏移地址=bx+1100h=1200h (6)AX=7856H;偏移地址=bx+si=0100h+0002h=0102h (7)AX=65B7H;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h 〔习题2.2〕指出下列指令的错误 (1)mov cx,dl (2)mov ip,ax (3)mov es,1234h (4)mov es,ds (5)mov al,300 (6)mov[sp],ax (7)mov ax,bx+di

(8)mov20h,ah 〔解答〕 (1)两操作数类型不匹配 (2)IP指令指针禁止用户访问 (3)立即数不允许传给段寄存器 (4)段寄存器之间不允许传送 (5)两操作数类型不匹配 (6)目的操作数应为[SI] (7)源操作数应为[BX+DI] (8)立即数不能作目的操作数 〔习题2.5〕已知SS=2200H、SP=00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?mov ax,8057h push ax mov ax,0f79h push ax pop bx pop[bx] 〔解答〕 mov ax,8057h push ax mov ax,0f79h push ax pop bx;bx=0f79h pop[bx];DS:[0f79h]=8057h

汇编程序习题

汇编程序习题 1.试分析以下程序段完成什么功能? MOV CL,4 SHL DX,CL SHL AX,CL SHR BL,CL INT 3 2.写出执行以下计算的指令序列: 1)Z←W+(Z-X)2)Z←W-(X+6)-(R+10) 3)Z←(W*X)/(R+6)4)Z←((W-X)/5*Y)*2 3.求两个数56H和67H进行ADD,并求出标志OF,CF,SF,ZF的值。4.阅读程序段,回答下述问题: 1)MOV AX,4000H 2)MOV AX,5678H 3)MOV AX,1234H OV DS,AX MOV BX,99AAH MOV CX,8912H MOV BX,1238H PUSH BX CMP AX,CX MOV〔BX〕,2244H PUSH AX INT 3 MOV AL,〔BX〕 POP DX SF=?OF=?JA成立否? INT 3 POP CX AL=?存储器的物理地址=?DX=?CX=? 5.下列程序能完成什么功能? DATY1 DB 300DUP(?) DATY2 DB 100DUP(?) …… MOV CX,100 MOV BX,200 MOV SI,0 MOV DI,0 NEXT:MOV AL,DATY1〔BX〕〔SI〕 MOV DATY2〔DI〕,AL

INC SI INC DI LOOP NEXT 6.下列指令哪些是错误的?并简述之。 1)MOV 15,BX 2)CMP OP1,OP2(假定OP1,OP2是用DB定义的变量) 3)CMP AX,OP1 4)CMP OP1,25H 5)MOV DS,CS 7.下列程序段执行后,BX的值是什么? MOV CL,3 MOV BX,0B8H ROL BX,1 ROR BX,CL 8.编写一个程序段,将内存200H单元开始的256个单元的内容,取绝对值后传送到400H开始的256个单元中。 9.求出下列各数与62A0H之和,并根据结果确定SF,ZF,CF,OF的值。 1)1234H 2)4321H 3)CFA0H 4)9D60H 10.求出下列各数与4AE0H之差,并根据结果确定SF,ZF,CF,OF的值。 1)1234H 2)5D80H 3)9090H 4)EA04H

数据库应用基础第4章习题参考答案

习题 1.选择题 (1)设A、B两个数据表的记录数分别为3和4,对两个表执行交叉联接查询,查询结果中最多可获得(C )条记录。 A.3 B. 4 C. 12 D. 81 (2)如果查询的SELECT子句为SELECT A, B, C * D,则不能使用的GROUP B子句是( A )。 A.GROUP BY A B.GROUP BY A,B C.GROUP BY A,B,C*D D.GROUP BY A,B,C,D (3)关于查询语句中ORDER BY子句使用正确的是( C )。 A.如果未指定排序字段,则默认按递增排序 B.数据表的字段都可用于排序 C.如果在SELECT子句中使用了DISTINCT关键字,则排序字段必须出现在查询结果中 D.联合查询不允许使用ORDER BY子句 (4)在查询设计器中,不能与其他窗格保持同步的是(D )。 A.关系图窗格 B. 网格窗格 C.SQL窗格 D. 结果窗格 (5)下列函数中,返回值数据类型为int的是(B)。 A.LEFT B. LEN C.LTRIM D. SUNSTRING 2.填空题 (1) 在启动查询分析器时,在登录对话框中可使用(Local)作为本地服务器名称。 (2) 查询分析器窗口主要由对象浏览器和(查询)窗口组成。 (3) 从Windows“开始”菜单启动查询分析器后,默认数据库为(master)。 (4) 以表格方式显示的查询结果保存为(导出)文件,其文件扩展名为(csv);以文本方式显示的查询结果保存为(报表)文件,其文件扩展名为(rpt)。 (5) 可使用(PRINT)或(SELECT)语句来显示函数结果。 (6) 在查询语句中,应在(SELECT)子句中指定输出字段。 (7) 如果要使用SELECT语句返回指定条数的记录,则应使用(TOP)关键字来限定输出字段。 (8) 联合查询指使用(UNION)运算将多个(查询结果)合并到一起。 (9) 当一个子SELECT的结果作为查询的条件,即在一个SELECT语句的WHERE子句中出现另一个SELECT语句,这种查询称为(嵌套)查询。 (10) 连接查询可分为3种类型:(内连接)、(外连接)和交叉连接。 3.问答题 (1) 在SELECT语句中,根据列的数据对查询结果进行排序的子句是什么?能消除重复行的关键字是什么? (2) 写出与表达式“仓库号NOT IN('wh1','wh2')”功能相同的表达式。用BETWEEN、AND形式改写条件子句WHERE mark> 550 AND mark<650。 (3) 在一个包含集合函数的SELECT语句中,GROUP BY子句有哪些用途?

汇编语言 第二版 王爽 完整答案

第1章基础知识 检测点1.1 (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13。 (2)1KB的存储器有1024个存储单元。存储单元的编号从0到1023。 (3)1KB的存储器可以存储1024*8个bit,1024个Byte。 (4)1GB、1MB、1KB分别是2^30、2^20、2^10 Byte。(n^m的意思是n的m次幂) (5)8080、8088、80286、80386的地址总线宽度分别是16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16(MB)、4(GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。 (7)从内存中读取1024字节的数据,8086至少要读512次、80386至少要读256次。 (8)在存储器中,数据和程序以二进制形式存放。 第2章寄存器答案 检测点2.1 (1) 写出每条汇编指令执行后相关寄存器中的值。 mov ax,62627 AX=F4A3H mov ah,31H AX=31A3H mov al,23H AX=3123H add ax,ax AX=6246H mov bx,826CH BX=826CH mov cx,ax CX=6246H mov ax,bx AX=826CH add ax,bx AX=04D8H mov al,bh AX=0482H mov ah,bl AX=6C82H add ah,ah AX=D882H add al,6 AX=D888H add al,al AX=D810H mov ax,cx AX=6246H (2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。 解: mov ax,2 add ax,ax add ax,ax add ax,ax 检测点2.2 (1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH。 (2) 有一数据存放在内存 20000H 单元中,先给定段地址为SA,若想用偏移地址寻到此单元。

51汇编程序练习题1

单片机汇编程序设计练习 一、存储器之间的数据传送 1、编程实现将单片机内部RAM60H开始的连续32个单元置为FFH。 2、编程实现将内部RAM30H开始的连续16个数传送到内部RAM50H开始的连续单元中。 3、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,数据块的长度为32个字节。 4、编程实现将单片机内部RAM30H为首地址的数据块传送到外部RAM2000H 开始的单元中,数据块的长度存放于内部RAM的20H单元。 5、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,直到数据内容为0DH时停止传送。 6、编程实现将ROM1000H地址的内容传送到内部RAM的25H单元。 7、编程实现将ROM2000H开始的连续10个地址的内容传送到内部RAM的25H 开始的单元。 8、编程实现将ROM1000H开始的连续100个地址的内容传送到外部RAM2000H 开始的连续单元中。 二、查表程序设计 1、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其平方值,并存放于40H。 2、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其立方值,并存放于R6。 3、单片机外部ROM TAB1地址开始存放一组ASCII码表,试用查表方法,将R2的内容(范围为0~F)转换为与其对应 的ASCII码,并从P1口输出。 4、使用8051的P1口作为段控驱动共阳 LED数码管,硬件连接如图。 编程实现将8051 R7单元内容(在 00H-09H之间)显示在数码管上。00H-09H 的共阳字形代码如下表所示。 04H 05H 06H 07H 08H 09H

第四章课后思考题及参考答案

第四章课后思考题及参考答案 1、为什么说资本来到世间,从头到脚,每个毛孔都滴着血和肮脏的东西? [答案要点]资本来到世间,从头到脚,每个毛孔都滴着血和肮脏的东西。资本主义的发展史,就是资本剥削劳动、列强掠夺弱国的历史,这种剥夺的历史是用血和火的文字载入人类编年史的。在自由竞争时代,西方列强用坚船利炮在世界范围开辟殖民地,贩卖奴隶,贩卖鸦片,依靠殖民战争和殖民地贸易进行资本积累和扩张。发展到垄断阶段后,统一的、无所不包的世界市场和世界资本主义经济体系逐步形成,资本家垄断同盟为瓜分世界而引发了两次世界大战,给人类带来巨大浩劫。二战后,由于社会主义的胜利和民族解放运动的兴起,西方列强被迫放弃了旧的殖民主义政策,转而利用赢得独立和解放的广大发展中国家大规模工业化的机会,扩大资本的世界市场,深化资本的国际大循环,通过不平等交换、资本输出、技术垄断以及债务盘剥等,更加巧妙地剥削和掠夺发展中国家的资源和财富。在当今经济全球化进程中,西方发达国家通过它们控制的国际经济、金融等组织,通过它们制定的国际“游戏规则”,推行以所谓新自由主义为旗号的经济全球化战略,继续主导国际经济秩序,保持和发展它们在经济结构和贸易、科技、金融等领域的全球优势地位,攫取着经济全球化的最大好处。资本惟利是图的本性、资本主义生产无限扩大的趋势和整个社会生产的无政府状态,还造成日益严重的资源、环境问题,威胁着人类的可持续发展和生存。我们今天看到的西方发达资本主义国家的繁荣稳定,是依靠不平等、不合理的国际分工和交换体系,依靠发展中国家提供的广大市场、廉价资源和廉价劳动力,通过向发展中国家转嫁经济社会危机和难题、转移高耗能高污染产业等方式实现的。资本主义没有也不可能给世界带来普遍繁荣和共同富裕。 2、如何理解商品二因素的矛盾来自劳动二重性的矛盾,归根结底来源于私人劳动和社会劳的矛盾?[答案要点]商品是用来交换的劳动产品,具有使用价值和价值两个因素或两种属性。在私有制条件下,商品所包含使用价值和价值的矛盾是由私有制为基础的商品生产的基本矛盾即私人劳动和社会劳动的矛盾所决定的。以私有制为基础的商品经济是以生产资料的私有制和社会分工为存在条件的。一方面,在私有制条件下,生产资料和劳动力都属于私人所有,他们生产的产品的数量以及品种等,完全由自己决定,劳动产品也归生产者自己占有和支配,或者说,商品生产者都是独立的生产者,他们要生产什么,怎样进行生产,生产多少,完全是他们个人的私事。因此,生产商品的劳动具有私人性质,是私人劳动。另一方面,由于社会分工,商品生产者之间又互相联系、互相依存,各个商品生产者客观上都要为满足他人和社会的需要而进行生产。因此,他们的劳动又都是社会劳动的组成部分。这样,生产商品的劳动具有社会的性质,是社会劳动。对此,马克思指出,当劳动产品转化为商品后,“从那时起,生产者的私人劳动真正取得了二重的社会性质。一方面,生产者的私人劳动必须作为一定的有用劳动来满足一定的社会需要,从而证明它们是总劳动的一部分,是自然形成的社会分工体系的一部分。另一方面,只有在每一种特殊的有用的私人劳动可以同任何另一种有用的私人劳动相交换从而相等时,生产者的私人劳动才能满足生产者本人的多种需要。完全不同的劳动所以能够相等,只是因为它们的实际差别已被抽去,它们已被化成它们作为人类劳动力的耗费、作为抽象的人类劳动所具有的共同性质。”私有制条件下,商品生产者私人劳动所具有的这二重性质,表现为生产商品的劳动具有私人劳动和社会劳动的二重性。 生产商品的私人劳动和社会劳动是统一的,同时也是对立的。其矛盾性表现在:作为私人劳动,一切生产活动都属于生产者个人的私事,但作为社会劳动,他的产品必须能够满足一定的社会需要,他的私人劳动才能转化为社会劳动。而商品生产者的劳动直接表现出来的是它的私人性,并不是它的社会性,他的私人劳动能否为社会所承认,即能否转化为社会劳动,他自己并不能决定,于是就形成了私人劳动和社会劳动的矛盾。这一矛盾的解决,只有通过商品的交换才能实现。当他的产品在市场上顺利地实现了交换之后,他的私人劳动也就成了社会劳动的一部分,他的具体劳动所创造的使用价值才是社会需要的,他的抽象劳动所形成的价值才能实现。如果他的劳动产品在市场上没有卖出去,那就表明,尽管他是为社会生产的,但事实上,社会并不需要他的产品,那么他的产品

微机原理 典型例题

[问题] 在MOV WORD PTR [0074H],55BBH指令的机器代码中,最后一个字节是 (难度系数:3) [选择答案] A. 00H B. 74H C. 55H D. BBH [正确答案] C [问题] 由于CPU内部的操作速度较快,而CPU访问一次主存所花的时间较长,因此机器周期通常用_____来规定 (难度系数:3) [选择答案] A. 主存中读取一个指令字的最短时间 B. 主存中读取一个数据字的最长时间 C. 主存中写入一个数据字的平均时间 D. 主存中取一个数据字的平均时间 [正确答案] A [问题] 程序控制类指令的功能是_____

(难度系数:3) [选择答案] A. 进行算术运算和逻辑运算 B. 进行主存与CPU之间的数据传送 C. 进行CPU和I/O设备之间的数据传送 D. 改变程序执行的顺序 [正确答案] D [问题] 虚拟存贮器的主要目的是_____ (难度系数:3) [选择答案] A. 提高主存贮器的存取速度 B. 扩大主存贮器的存贮空间,并能进行自动管理和调度 C. 提高外存贮器的存取速度 D. 扩大外存贮器的存贮空间 [正确答案] B [问题] 位操作类指令的功能是______ (难度系数:3) [选择答案] A. 对CPU内部通用寄存器或主存某一单元任一位进行状态检测(0或1) B. 对CPU内部通用寄存器或主存某一单元任一位进行状态强置(0或1)

C. 对CPU内部通用寄存器或主存某一单元任一位进行状态检测或强置 D. 进行移位操作 [正确答案] C [问题] 在微型机系统中,外围设备通过____与主板的系统总线相连接(难度系数:3) [选择答案] A. 适配器 B. 设备控制器 C. 计数器 D. 寄存器 [正确答案] A [问题] 系统总线中地址线的功能是______ (难度系数:3) [选择答案] A. 选择主存单元地址 B. 选择进行信息传输的设备 C. 选择外存地址 D. 指定主存和I/O设备接口电路的地址 [正确答案]

《汇编语言与接口技术》答案习题解答(第三章)

解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示 解: mov ax, bufX cmp ax, bufY jge done mov ax, bufY done: mov bufZ, ax 解:

.model small .stack .data bufX dw -7 signX db .code .startup cmp bufX,0 ;test bufX,80h jl next ;jnz next mov signX,0 jmp done next: mov signX,-1 done: .exit 0 end 解: mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h

编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ; .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数 sum db ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 解: lucase proc push bx mov bx,offset string cmp al,0 je case0 cmp al,1

汇编语言程序例题0001

【例】试编写一程序计算以下表达式的值。 w = (v- (x * y + z -540 )) /x 式中x、y、z、v均为有符号字数据。 设x、y、z、v的值存放在字变量X、Y、Z、V中,结果存放在双字变量W之中,程序的流程图如图所示。 DATA SEGMENT X DW 200 Y DW 100 Z DW 3000 V DW 10000 W DW 2 DUP (?) DATA ENDS STACK SEGMENT STACK DB 200 DUP (0) STACK ENDS CODESEGMENT ASSUME DS DATA CS: CODE SS: STACK START MOV AX DATA MOV DS AX ; DATA>AX MOV AX X IMUL Y ; (X) * (DX AX MOV CX AX

MOV BX,DX ;(DX AX) T BX : CX ) MOV AX,Z CWD ; (Z)符号扩展 ADD CX,AX ADC BX,DX ; ( BX: CX)+( DX:AX)BX: CX) SUB CX,540 SBB BX,0 ;( BX:CX) - 5 40~BX : CX) MOV AX,V CWD ; (V)符号扩展 SUB AX,CX SBB DX, BX ;( DX: AX)-((BX CX DX: AX) IDIV X ;( DX:AX)/X MOV W,AX ;商5 MOV W+2 DX ;余数D?W+2 MOV AH,4CH INT 21H CODEENDS ;退出DOS 状态 END START 【例】已知某班学生的英语成绩按学号(从 1 开始)从小到大的顺序排列在要查的学 生的学号放在变量NO中,查表结果放在变量ENGLISH中。编写程序如下: STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT TAB DB 80 ,85,86,71,79,96 DB 83 ,56,32,66,78,84 NO DB 10 ENGLIST DB ? DATA ENDS CODE SEGMENT ASSUME DS: DATA,SS: STACK,CS: CODE BEGIN: MOV AX,DATA MOV DS,AX LEA BX,TAB MOV AL,NO DEL AL XLAT TAB MOV ENGLIS,H AL MOV AH,4CH INT 21H CODEENDS TAB表中,

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

汇编语言程序设计练习题

汇编语言程序设计练习题 阅读程序并完成填空: 1.1.MOV BL,85H MOV AL,17H ADD AL,BL AL=?,BL=?,CF=? 2.2.MOV AX,BX NOT AX ADD AX,BX INC AX AX=?,CF=? 3.3.MOV AX,0FF60H STC MOV DX,96 XOR DH,0FFH SBB AX,DX AX=?,CF=? 4.4.MOV BX,0FFFEH MOV CL,2 SAR BX,CL 5.5.MOV BX,0FFH AND BX,0FFFH OR BX,0F0FH XOR BX,00FFH 上述程序段运行后,BX=?,CF=? 6.6.CMP AX,BX JGE NEXT XCHG AX,BX NEXT:CMP AX,CX JGE DONE XCHG AX,CX DONE:。。。。。 试回答: (1)(1)上述程序段执行后,原有AX、BX、CX中最大数存放在哪个寄存器中? (2)(2)这3个数是带符号数还是无符号数?

7.7.在数据段ADDR1地址处有200个字节,要传送到数据段ADDR2处。 MOV AX,SEG ADDR1 MOV DS,AX MOV ES,------- MOV SI,------- MOV DI,OFFSET ADDR2 MOV-----,200 CLD REP--------- 8.8.ADDR1开始的单元中连续存放两个双字数据,将其求和存放在ADDR2开始的单元。 MOV CX,2 XOR BX,BX CLC NEXT:MOV AX,[ADDR1+BX] ADC AX,------- MOV[ADDR2+BX],AX ADD--------,2 ---------NEXT 9.9.设初值AX=1234H,BX=5678H,DX=0ABCDH,则执行下面一段程序后AX=------,BX=----,DX=--------。 MOV CL,4 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL 10.10.设有一个首地址为ARRAY有N个字数据的数组,要求求出该数组之和,并把结果存入TOTAL地址中,有关程序如下:MOV CX,------ MOV AX,0 MOV SI,0 START:ADD AX,-----

第四章课后习题参考答案

第4章网络基础知识与Internet应用一、单项选择题 二、填空题 1.局域网、城域网、广域网或LAN、MAN、WAN 2. C、A、C 3. 127.0.0.1(本机)、255.255.255.255(限制广播)、0.0.0.0(广播) 4. Electronic Commerce, EC 5.B2B、B2C 6. Instrumented:物联化 Interconnected:互联化 Intelligent:智能化 7.感知层、网络层、应用层 8.接入(网络层)、应用(业务层) 9.硬件系统、软件系统 10.不可否任性

三、简答题 1. 计算机网络发展包括四个阶段:第一,面向终端的计算机网络;第二,计算机-计算机网络;第三,开放标准网络阶段;第四,因特网与高速计算机网络阶段。各阶段的特点:第一,面向终端的计算机网络:以单个计算机为中心的远程联机系统,构成面向终端的计算机网络。第二,计算机-计算机网络:由若干个计算机互联的系统,组成了“计算机-计算机”的通信时代,呈现出多处理中心的特点。第三,开放标准网络阶段:由于第二阶段出现的计算机网络都各自独立,不相互兼容。为了使不同体系结构的计算机网络都能互联,国际标准化组织ISO提出了一个能使各种计算机在世界范围内互联成网的标准框架―开放系统互连基本参考模型OSI。第四,因特网与高速计算机网络阶段:采用高速网络技术,综合业务数字网的实现,多媒体和智能型网络的兴起。 2.TCP/IP网络使用32位长度的地址以标识一台计算机和同它相连的网络,它的格式为:IP 地址=网络地址+ 主机地址。标准IP地址是通过它的格式分类的,它有四种格式:A类、B类、C类、D类。 3. 电子商务所涵盖的业务范围包括:信息传递与交流;售前及售后服务;网上交易;网上支付或电子支付;运输;组建虚拟企业。 4. 包括banner(网幅广告)、button广告、文字链接广告、弹出式广告(pop up window)及其它形式(如移动logo、网上分类广告等)。其中banner广告是主流形式,也被认为是最有效的。 5. 国际电信联盟( ITU)对物联网做了如下定义:通过二维码识读设备、射频识别(RFID) 装置、红外感应器、全球定位系统和激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。

汇编语言例子

实验三: 1)题目:在内存中从ARRAY开始的连续三个字节单元存放着30H,40H,50H。编制程序将这三个连续的数据传送到内存TABLE开始的单元。 DATA SEGMENT ARRAY DB 30H,40H,50H 定义数据段 TABLE DB 3 DUP (?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,ARRAY LEA DI,TABLE MOV CX,3 REP MOVSB JMP $ CODE ENDS END START (2)题目:把内存2000H和3000H字单元的内容相加,结果存入4000H单元。(不考虑溢出) DATA SEGMENT ORG 2000H DW 1234H ORG 3000H DW 5678H ORG 4000H DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,[2000H] ADD AX,[3000H] MOV [4000H],AX JMP $ CODE ENDS END START 实验四 1、数据传送指令和算术运算指令完成NUM1和NUM2相加,结果放入SUM中。

DATA SEGMENT NUM1 DW 0012H,0030H,0FC21H ; 数1 NUM2 DW 3E81H,44E9H,6D70H ; 数2 SUM D W 3 DUP(?) ; 结果单元 DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV CX,3 LEA SI,NUM1 LEA DI,NUM2 LEA AX,SUM HE: MOV BX,[SI] ADD BX,[DI] MOV [AX],BX INC SI INC DI INC AX LOOP HE MOV AH, 4CH ; 返回DOS INT 21H CODE ENDS END START 2、内存中自TABLE开始的七个单元连续存放着自然数0至6的立方值(称作立方表)。;任给一数X(0≤X≤6)在XX单元,查表求X的立方值,并把结果存入YY单元中。;提示用XLAT指令 DATA SEGMENT TABLE DB 0H,1H,2H,3H,4H,5H,6H XX DB 1 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,TABLE MOV AL,[XX] XLAT MOV DL,AL MOV AH,02H INT 21H JMP $

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

相关文档
最新文档