1. 已知数组A包含10个互不相等的整数,数组B包含15个互不相等的整数,试编写一程序,将既在A中出现又在B中出现的偶数存放在数组C中,要求:用8088、8086汇编语言设计,请画出程序框图。
2. 写出七进制数4362.56转换为十进制数的表达式___?十进制数68转换为五进制数为___?
3. 中断服务程序中的STI指令目的是___?对于非自动结束方式的中断服务程序,结束时必须设置一条命令是___?
4. 假设某外设的中断类型码为20H,其中断向量地址指针为___?如中断服务程序入口地址为3000:0654H,写出中断向量表对应单元的4个地址___?及数据___?
5. 已知AL的内容为01101011B,执行指令NEG AL后再执行CBW,这时AX中的内容为___?
6. 设NUM为数据段一个变量名,指出执行下面三条指令后SI中的内容:
MOV SI,NUM
LEA SI,NUM
MOV SI,OFFSET NUM
7.
有如下程序段,设寄存器初值(AX)=20BCH,(DX)=
MOV CL,04H
SHL DX,CL; (DX)=?
MOV BL,AH
SHL AX,CL; (AX)=?
SHR BL,CL; (BL)=?
XOR DL,BL; (DX)=?
8. 执行下面的程序段后,AX=?
MOV CX,7
MOV AX,50
NEXT:SUB AX,CX
LOOP NEXT
HLT
9. 执行下面的程序段后,AL=?
BUF DW 2152H,3416H,5731H,4684H
MOV BX,OFFSET BUF
MOV
XLAT
10. 设n为一任意正整数,
(1)此程序完成什么功能?
(2)画出程序流程图
(3)执行此程序后结果是什么?
datarea segment
x dw ?
array_head dw 4,7,12,26,34,42,54,69,85,99
array_end dw 110
n dw 39
datarea ends
program segment
main proc far
assume cs:program,ds:datarea
start:
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov ax,n
mov array_head-2,0FFFFH
mov si,0
compare:
cmp array_end[si],ax
jle insert
mov bx,array_end[si+2],bx
sub si,2
jmp short compare
insert:
mov array_end[si+2],ax
ret
main endp
program ends
end start
11. (1)此程序完成什么功能
(2)画出程序流程图
(3)画出第一次调用子程序sum,执行完语句①时堆栈的情况
(4)当执行到语句②时,对应于上述情况,指出堆栈指针SP的位置
datarea segment
ary1 db 03H,07H,50H,06H,23H,45H,
len1 equ S-ary1
sum1 dw ?
ary2 db 33H,44H,55H,12H,78H,89H,0feH,0cdH
len2 equ S-ary2
sum2 dw ?
data ends
stack segment stack 'stack'
db 100 dup('s')
stack ends
code segment para 'code'
assume cs:code,ds:data,ss:stack
sta proc far
push ds
xor ax,ax
push ax
mov dx,data
mov ds,ax
mov ax,len1
push ax
lea ax,ary1
push ax
call sum
mov ax,len2 ②
push ax
lea ax,ary2
push ax
call sum
ret
sta endp
sum proc
push db
mov bp,sp
push ax
push bx
push cx
pushf ①
mov cx,[bp+6]
mov bx,[bp+4]
xor ax,ax
add1: add al,[bx]
adc ah,0
inc bx
loop add1
mov [bx],ax
popf
pop cx
pop ax
pop bp
ret 4
sum endp
code ends
end sta
12. (1)画出程序流程图
(2)该程序完成什么功能?
提示:DOS功能调用01,键盘输入并回显,ASSII码20H:空格
data segment
buffer db 30 dup(?)
flag db ?
data ends
program segment
main proc far
assume cs:program,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
lea bx,buffer
mov flag,0
next:
mov ah,01
int 21h
test flag,01h
jnz follow
cmp al,20h
jnz exit
mov flag,1
jmp next
follow:
cmp al,20h
jz exit
mov [ax],al; []里看不太清,好像是ax
jnc bx
jmp next
exit:
ret
main endp
program ends