《汇编语言程序设计》期末复习题。
2008秋季)
1、现有(ax)=2000h,(bx)=1200h,(si)=0002h,(di)=0003h,(ds)=3000h,(ss)=3000h,(sp)=0000h,(31200h)=50h,(31201h)=02h,(31202h)=0f7h,(31203h)=90h请写出下列各条指令独立执行完后,有关寄存器及存储单元的内容,若该指令影响条件码,则请给出条件码sf,zf,of,cf的值。
1、add ax, 1200h
2、sub ax, bx
3、mov [bx], ax
4、push ax
5、dec byte ptr [1200h]
6、neg word ptr [1200h]
7、sar byte ptr 1200[si],1
8、rol byte rtr [bx+si+1],1
9、mul word ptr [bx][si]
10、dvi byte ptr 1200[di]
2、假设(cs)=3000h,(ds)=4000h,(es)=2000h,(ss)=5000h,(ax)=2060h,(bx)=3000h,(cx)=0005h,(dx)=0,(si)=2060h,(di)=3000h,(43000h)=0a006h,(23000h)=0b116h,(33000h)=0f802h,(25060h)=00b0h,(sp)=0fffeh,(cf)=1,(df)=1,请写出下列各条指令独立执行完后,有关寄存器及存储单元的内容,若该指令影响条件码,请给出条件码sf,zf,of,cf的值。
1、sbb ax, bx
2、cmp ax, word ptr[si+0fa0h]
3、mul byte ptr[bx]
4、aam
5、div bh
6、sar ax, cl
7、xor ax, 0ffe7h
8、rep stosb
9、jmp word ptr [bx]
10、xchg ax, es:[bx+si]
3、判断下列指令是否正确。
1、pop cs
2、push word ptr 20[bx+si-2
3、lea bx, 4[bx
4、jmp byte ptr[bx
5、sar ax,5
6、mov byte ptr[bx],1000
7、cmp [di],[si
8、add bx,offset a
9、in al,dx
10、mul 25
4、填空。1)一个有16个字的数据区,它的起始地址为70a0:ddf6,那么该数据区的最后一个字单元物理地址为h)
2)假设(ss)=2250h,(sp)=0140h,如果在堆栈中存入5个数据,则栈顶的物理地址为h)。如果又从堆栈中取出3个数据,则栈顶的物理地址为h)。
3)在sub ax, bx指令执行后,cf=1,说明:
a)最高有效位。
b)对数,操作结果猜出。
4)某程序的数据段定义如下:
datasg segment
partlist db ‘part#
db 60db ‘price‘
dw 0125
db ‘description’
db ‘radio’
listleng equ数组长度,用表达式表示。
datasg ends
5、某程序设计数据区如下:
org 100h
names db ‘tom.. 20
db ‘rose. ‘25
db ‘kate. ‘22
1) 列出该数据区的list清单(即各字节单元的存储情况)。
2) 下列各组指令,若为合法指令,请写出执行后的结果;若为非法指令,请指出其错误。
a) mov bx,offset names
mov ax,[bx+5]
b) mov bx, offset names+11
cmp [bx],byte ptr names+5
c) mov bx,6 * 2
mov si,5
mov di,offset [bx][si]
inc [di]
d) mov si,5
lea di,names 6[si]
mov al,[di]
6、编程。1)定义宏指令biger:把字变量x和y中较大者存入big,若x和y相等时,则把其中之一存入big。
2)宏指令disp完成:根据不同的功能码(2,6,9)分别产生显示单字符或字符串的程序段。
并调用:disp 2,0dh
disp 2,0ah
disp 9,string
3)定义宏指令printbk:利用dos调用完成打印机连续打印一串字符的功能,如果字符串**现列表符tab(ascii码为09h),则打印8个空格符(ascii码为20h)来代替它,字符串首地址及长度为变元。
4)现有 data segment
array dw 64 dup( ?
dw 5 dup( ?
data ends
试编制一程序段,要求在array+8到array+10(两者都包括在内)单元中插入5个0。(提示:先把从array+8单元开始的数据后移5个单元,然后再在规定位置插入0值)
7、试分析下列程序执行完后,a单元的内容是什么?
data segment
a dw 0
b dw 0
c dw 230,20,54
data ends
code segment
mov bx,offset c
mov ax,[bx]
mov b ax
mov ax,2[bx]
add ax,b
mov a, ax
code ends
8、程序填空。假设x和x+2单元的内容为双精度数p,y和y+2单元的内容为双精度数q(x,y为低位字),下列程序段使2p>q时(ax)=1,2p<=q时(ax)=2。请把程序段填写完整。
mov dx,x+2
mov ax,x
add ax,x
adc dx,x+2
cmp dx,y+2
) l2 ) l1
cmp ax,y
) l2l1: mov ax,1
jmp exit
l2: mov ax,2
exit:int 20h
参***:一、
1.(ax)=3200,(sf,zf,of,cf)=(0,0,0,0)
2.(ax)=0e00h,(sf,zf,of,cf)=(0,0,0,0)
3.(31200h)=2000h,不影响条件码。
4.(3fffeh)=2000h,(sp)=0fffeh,不影响条件码。
5.(31200h)=4fh,(sf,zf,of,cf)=(0,0,0,/)
6.(31200h)=0fdb0h,(sf,zf,of,cf)=(1,0,0,1)
7.(31202h)=0fbh,(sf,zf,of,cf)=(1,0,0,1)
8.(31203h)=21h,(sf,zf,of,cf)=(1,1)
9.(dx)=121eh,(ax)=0e000h,(of,cf)=(1,1)
10.(al)=38h,(ah)=80h,条件码无定义。
二、1.(ax)=0f05fh,(sf,zf,of,cf)=(1,0,0,1)
2.(sf,zf,of,cf)=(1,0,1,1)
3.(ax)=0240h,(of,cf)=(1,1)
4.(ax)=0906h,(sf,zf)=(0,0)
《汇编语言程序设计》期末复习题
一 填空题。1.一个十进制数35.625其对应的二进制数为 100011.101b十六进制数为 23h 2.将8存放在一个字单元中,则该单元中二进制 是 0008h 3.计算机软件分为两个部分即系统软件和应用软件而汇编程序属于系统软件 汇编语言应用程序属于应用软件 4.把汇编语言源程序翻译成计算机能...
汇编语言程序设计复习题
一 填空题。1.8086 8088cpu标志寄存器中的tf if和 属于控制标志位,而af pf of cf和 属于状态标志位。2.任何变量都有 和 三种属性。3.双字节无符号整数的最大值为 双字节有符号整数的最大值为 4.伪指令macro dq和end的标号名字域必须有名字的是 不得有名字是 可有...
《汇编语言程序设计》试卷
姓名班级学号评分。一 判断题 10小题 以下各题中给出了一些86汇编语言语句,请对其合法性作出判定。合法的,记 否则,记 答案记于题后的括号中。不在括号中的内容一律不视为回答。使用其它符号或不能清晰辨认的记法作答被视为答错。不准涂改答案。否则,视为答错。1 mov es,word ptr absd ...