
急!!!微机原理考试题,高分求答案
急!!!微机原理考试题,高分求答案1.程序分析题ORG2000HARYDW-4,3,-2,1CNTDW$-ARYVARDWARY,$+4...MOVAX,ARYMOVBX...
急!!!微机原理考试题,高分求答案
1.程序分析题
ORG 2000H
ARY DW -4,3,-2,1
CNT DW $ -ARY
VAR DW ARY,$ +4
.
.
.
MOV AX,ARY
MOV BX,OFFSET VAR
MOV CX,CNT
MOV DX,VAR+2
LEA SI,ARY
.
.
.
问:此程序段执行后,寄存器AX,BX,CX,DX,与SI中的内容各为多少?
(注:这是个大题,要给出步骤)
2,编程:已知某数组ARRAY中有100个带符号字节数,试用汇编语言编写一源程序,统计该数组中相邻两数间符号变换的次数,并将次数存放在NUM单元中。
3,编程:从AA单元开始的30个连续单元中存放有30个无符号数,从中找出最大数送入BB单元中,试编程。 展开
1.程序分析题
ORG 2000H
ARY DW -4,3,-2,1
CNT DW $ -ARY
VAR DW ARY,$ +4
.
.
.
MOV AX,ARY
MOV BX,OFFSET VAR
MOV CX,CNT
MOV DX,VAR+2
LEA SI,ARY
.
.
.
问:此程序段执行后,寄存器AX,BX,CX,DX,与SI中的内容各为多少?
(注:这是个大题,要给出步骤)
2,编程:已知某数组ARRAY中有100个带符号字节数,试用汇编语言编写一源程序,统计该数组中相邻两数间符号变换的次数,并将次数存放在NUM单元中。
3,编程:从AA单元开始的30个连续单元中存放有30个无符号数,从中找出最大数送入BB单元中,试编程。 展开
3个回答
展开全部
1.程序分析题
ORG 2000H
ARY DW -4,3,-2,1
CNT DW $ -ARY
VAR DW ARY,$ +4
.
.
.
MOV AX,ARY ;AX=0FFFCH
MOV BX,OFFSET VAR ;BX=2008H
MOV CX,CNT ;CX=8
MOV DX,VAR+2 ;DX=200EH
LEA SI,ARY ;SI=2000H
此程序段执行后,
AX=0FFFCH
BX=2008H
CX=8
DX=200EH
SI=2000H
; -----------------------------------------
2,编程:已知某数组ARRAY中有100个带符号字节数,试用汇编语言编写一源程序,统计该数组中相邻两数间符号变换的次数,并将次数存放在NUM单元中。
cld
lea si,ARRAY ;取数组ARRAY地址
mov cx,100 ;数组元素个数
mov NUM,0 ;计数器清零
lodsb ;读入第一个数组元素至累加器al
dec cx
and al,80h ;保留符号位,屏蔽掉其余各位
rol al,1 ;循环左移一位,符号位进入第0位
mov ah,al ;作为相邻两数间符号是否变换的比较对象
Count:lodsb ;读入一个数组元素至累加器al
and al,80h
rol al,1
xor ah,al ;相邻两元素符号位异或,相同则0,相异则1
add NUM,ah ;计数
mov ah,al ;保存当前元素符号位
loop Count ;循环,处理下一个元素
; -----------------------------------------
3,编程:从AA单元开始的30个连续单元中存放有30个无符号数,从中找出最大数送入BB单元中,试编程。
假设这30个无符号数都是字节元素。
cld
lea si,AA
lodsb ;装入第一个元素,作为最大数初值
mov cx,29
Compare:
cmp al,[si]
jae $+4 ;当前最大数>=当前元素
mov al,[si] ;当前最大数<当前元素,更新最大数
inc si
loop Compare
mov BB,al ;最大数送BB单元
ORG 2000H
ARY DW -4,3,-2,1
CNT DW $ -ARY
VAR DW ARY,$ +4
.
.
.
MOV AX,ARY ;AX=0FFFCH
MOV BX,OFFSET VAR ;BX=2008H
MOV CX,CNT ;CX=8
MOV DX,VAR+2 ;DX=200EH
LEA SI,ARY ;SI=2000H
此程序段执行后,
AX=0FFFCH
BX=2008H
CX=8
DX=200EH
SI=2000H
; -----------------------------------------
2,编程:已知某数组ARRAY中有100个带符号字节数,试用汇编语言编写一源程序,统计该数组中相邻两数间符号变换的次数,并将次数存放在NUM单元中。
cld
lea si,ARRAY ;取数组ARRAY地址
mov cx,100 ;数组元素个数
mov NUM,0 ;计数器清零
lodsb ;读入第一个数组元素至累加器al
dec cx
and al,80h ;保留符号位,屏蔽掉其余各位
rol al,1 ;循环左移一位,符号位进入第0位
mov ah,al ;作为相邻两数间符号是否变换的比较对象
Count:lodsb ;读入一个数组元素至累加器al
and al,80h
rol al,1
xor ah,al ;相邻两元素符号位异或,相同则0,相异则1
add NUM,ah ;计数
mov ah,al ;保存当前元素符号位
loop Count ;循环,处理下一个元素
; -----------------------------------------
3,编程:从AA单元开始的30个连续单元中存放有30个无符号数,从中找出最大数送入BB单元中,试编程。
假设这30个无符号数都是字节元素。
cld
lea si,AA
lodsb ;装入第一个元素,作为最大数初值
mov cx,29
Compare:
cmp al,[si]
jae $+4 ;当前最大数>=当前元素
mov al,[si] ;当前最大数<当前元素,更新最大数
inc si
loop Compare
mov BB,al ;最大数送BB单元

2024-08-11 广告
振动测试实验系统是我司核心技术产品之一,该系统集成了高精度传感器、智能控制单元与先进数据分析软件,能够模拟各种复杂环境下的振动条件,对航空航天器、汽车部件、电子设备等产品进行全面而精确的振动测试。通过该系统,客户可评估产品在长期振动下的耐久...
点击进入详情页
本回答由航天希尔提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询