朋友考研,有些习题不会做,哪位知道的帮解答一下

whxbb 2006-03-27 01:36:44
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)=45A2H,按下面要求写出连续执行相应指令后寄存器的内容:
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 AL,4
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,0f6H,0dfH
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



...全文
654 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
linfeng1216 2006-03-28
  • 打赏
  • 举报
回复
真是好人!
whxbb 2006-03-27
  • 打赏
  • 举报
回复
太感谢了。
icbm 2006-03-27
  • 打赏
  • 举报
回复
5.已知AL的内容为01101011B,执行指令NEG AL后再执行CBW,这时AX中的内容为___?
二进制:1111111110010101
十六进制:0ff95h


6.设NUM为数据段一个变量名,指出执行下面三条指令后SI中的内容:
MOV SI,NUM ; SI为NUM的数值。
LEA SI,NUM ; SI为NUM的偏移量,偏移量在运行时确定。
MOV SI,OFFSET NUM ; SI为NUM的偏移量,偏移量在编译时确定。


7.有如下程序段,设寄存器初值(AX)=20BCH,(DX)=45A2H,按下面要求写出连续执行相应指令后寄存器的内容:
MOV CL,04H
SHL DX,CL; (DX)=? 5A20H
MOV BL,AH; BL=20H
SHL AX,CL; (AX)=? 0BC0H
SHR BL,CL; (BL)=? 2H
XOR DL,BL; (DX)=? 5A22H


8.执行下面的程序段后,AX=?
MOV CX,7
MOV AX,50
NEXT:SUB AX,CX
LOOP NEXT
HLT
AX=22; 计算过程如下:50-7-6-5-4-3-2-1=50-(1+7)*7/2=50-28=22

9.执行下面的程序段后,AL=?
BUF DW 2152H,3416H,5731H,4684H
MOV BX,OFFSET BUF
MOV AL,4
XLAT
AL=31h
whxbb 2006-03-27
  • 打赏
  • 举报
回复
多谢哈
icbm 2006-03-27
  • 打赏
  • 举报
回复
; 第1题

.model small

_DATA segment word public 'DATA'
Ar dw 1,2,3,4,5,6,7,8,9,10
Br dw 2,4,6,8,10,12,14,16,18,20,22,24
Cr dw 10 dup(?)
_DATA ends

_TEXT segment
assume cs:_TEXT,ds:_DATA,es:_DATA
_main:
; 初始化段寄存器
mov ax, _DATA
mov ds,ax
mov es,ax
;--------------------------------
mov di,offset Cr

mov si, offset Ar
mov cx, 10 ; A中元素10个
@C001:
mov ax, [si]

push cx
;--------------------------------
mov bx, offset Br
mov cx, 12 ; B中元素12个
@C002:
mov dx, [bx]
; if ax==dx && ((ax & 1) !=0)
cmp ax,dx
jnz @C003
test ax,1
jnz @C003
mov [di],ax
inc di
inc di
jmp @C004 ; 因数各不相同,找到一个即可
@C003:
inc bx
inc bx
loop @C002
;--------------------------------
@C004:
pop cx
inc si
inc si
loop @C001

;================================
mov ax, 4c00h
int 21h
_TEXT ends
end _main

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧