急!!!!五道汇编语言程序设计 程序分析题!!!不甚感激!!!

程序分析题
29. DA1 DB ′01234′
DA2 DB 5 DUP(0)

MOV SI,0
MOV CX,5
LOP:MOV AL,DA1〔SI〕
ADD AL,11H
OR AL,01H
MOV DA2〔SI〕,AL
INC SI
LOOP LOP
试问:(1)程序段执行后,写出DA2各字节中的数据。
(2)程序中MOV AL,DA1〔SI〕指令的源操作数是什么寻址方式
30.VAR1 DW 1234H,89,255,-2,-0AH
VAR2 DB 34,78H,44,22,19,-12

MOV AH,23H
LEA BX,VAR1+4
MOV AL,BYTE PTR 〔BX+1〕
MOV SI,WORD PTR VAR2+3
程序段执行后AX=_______,SI=_______。
31.BUF DW 1,0,0AB1CH,582H,9,3A04H,9,0

LEA DI,BUF
MOV CX,8
MOV AX,9
REPNZ SCASW
JNZ K1
SUB DI,OFFSET BUF
MOV DX,DI
SHR DX,1
ADD DL,30H
MOV AH,2
INT 21H
K1:……
上述程序执行后:(1)程序完成什么功能?(2)显示输出的是什么值?
32. MOV BX,1
XOR AX,AX
MOV CX,5
NEXT:ADD AX,BX
INC BX
LOOP NEXT
上述程序段执行后AX=_______;BX=_______。
33.设AL中高低4位分别有大于7的数,
MOV AH,AL
AND AH,88H
MOV AL,AH
OR AL,11H
程序段运行后,AH=_________,AL=_________。
34.AT DB 0AH,0BH,0CH,0DH,0EH,0FH,00H

MOV BX,0
LOP:MOV DL,AT〔BX〕
CMP DL,0
JZ DONE
ADD DL,37H
MOV AH,2
INT 21H
INC BX
JMP LOP
DONE:……
①上述程序段执行后在屏幕上显示的内容依次是:
②执行后BX=___________。
35.DEC2 DB′56′

XOR DI,DI
MOV BL,DEC2〔DI+1〕
AND BL,0FH
MOV AL,DEC2〔DI〕
AND AL,0FH
MOV DL,10
MUL DL
ADD AL,BL
上述程序段运行后,AL=_______,BL=________。
题为 全国2005年10月高等教育自学考试
汇编语言程序设计试题

第1个回答  2010-12-29
29、⑴DA2中的数据为:41H,42H,43H,44H,45H
⑵寄存器相对寻址。
30、AX=2300H,SI=162CH
31、⑴在BUF中查找第一个数值为9的数据并显示
⑵“9”
32、AX=000FH,BX=0006H
33、AH=88H,AL=99H
34、⑴依次显示:A,B,C,D,E,F
⑵BX=0007H
35、AL=02H,BL=06H本回答被提问者和网友采纳
第2个回答  2011-01-04
; 题目类别:将一段英文文章中的大小写字母互转大小写;统计出每个字母出现的次数,在屏幕显示,每显示一个字母发出一声提示音
; 题目来源:
; 程序使用说明:
; 1、提示输入不超过254个字符的一段英文文章;
; 2、统计每个字母出现的次数,区别对待大写字母与小写字母视为不同的字母(非字母字符不统计),同时,大小写字母互转
; 3、显示不同字母及其出现的次数,振铃一声;
; 4、显示转换后的英文文章
; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)
; 用法: Output Str_Addr
; 用法举例:Output PromptStr
Output MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
; -------------------------------------
; 功能:输出一个字符
; 入口:dl=要显示的字符
Output_Chr proc Near
push ax
mov ah,02h
int 21h
pop ax
ret
Output_Chr endp
; -------------------------------------
; 功能:输出回车换行
Output_CTLF proc Near
push ax
push dx
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
pop dx
pop ax
ret
Output_CTLF endp
; -------------------------------------
; 功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示
; 入口:AX=二进制数
; 出口:在当前光标位置显示转换后的ASCII码数字
Dec_ASCII Proc Near
push ds
push cs
pop ds
push cs
pop es
push dx
push bx
push di
mov bx,10
lea di,@@Temp_Save[6]
mov BYTE ptr [di],'$'
dec di
cld
@@Divide: xor dx,dx
div bx
or dl,30h
mov [di],dl
dec di
test ax,0ffffh
jnz @@Divide
inc di
push di
pop dx
mov ah,9
int 21h
pop di
pop bx
pop dx
pop ds
ret
@@Temp_Save db 7 dup(?)
Dec_ASCII EndP
; -------------------------------------
; 功能:查找指定字母是否出现并统计出现次数
; 入口参数:AL=指定的字母
Statics_Letter proc Near
push cx
push bx
mov bx,Letter_Table ;出现过的字母及其次数地址
mov cx,Letters ;出现过的不同字母的数目
jcxz @@First_Time
@@Find_Letter: cmp al,[bx]
jnz $+7
inc BYTE ptr [bx][1] ;计数1次
jmp @@Finded ;出现过,计数1次后返回
inc bx
inc bx
loop @@Find_Letter
@@First_Time: mov [bx],al ;第一次出现,加入统计表
mov BYTE ptr [bx][1],1 ;计数1次
inc Letters ;出现过的不同字母的数目+1
@@Finded: pop bx
pop cx
ret
Statics_Letter Endp
; -------------------------------------
; 功能:延时指定的时钟嘀嗒数
; 入口:
; Didas=时钟嘀嗒数(1秒钟约嘀嗒18.2次,10秒钟嘀嗒182次。若延时不是秒的10数次倍,误差稍微大点)
Delay Proc Near
push dx
push cx
xor ax,ax
int 1ah
mov cs:@@Times,dx
mov cs:@@Times[2],cx
Read_Time: xor ax,ax
int 1ah
sub dx,cs:@@Times
sbb cx,cs:@@Times[2]
cmp dx,Didas
jb Read_Time
pop cx
pop dx
ret
@@Times dw 0,0
Delay EndP
; -------------------------------------
Didas = 3 ;时钟嘀嗒数
Letter_Table dw ? ;出现过的字母及其次数地址
Letters dw 0 ;出现过的不同字母的数目
Prompt_Str db 'Please input a string:',13,10,'$'
Press_Key db 7,13,10,13,10,'The complated. Press any key to exit...$'
; -------------------------------------
Start: push cs
pop ds
push cs
pop es
Output Prompt_Str ;提示输入英文文章
lea dx,Buffer ;英文文章字符串缓冲区地址
mov ah,0ah
int 21h
call Output_CTLF ;输出一个回车、换行
lea si,Buffer[1] ;实际输入的字符数地址
cld
lodsb ;读取这个数目
mov di,si
mov cl,al
xor ch,ch
add di,cx
inc di ;出现过的字母及其次数地址
mov Letter_Table,di ;保存这个地址
Translate: lodsb ;读取一个字符
mov ah,al
or ah,20h ;按小写字母处理
cmp ah,'a'
jb Next_One ;不是字母,不转换
cmp ah,'z'
ja Next_One ;不是字母,不转换
call Statics_Letter ;查找指定字母是否出现并统计出现次数
xor al,20h ;关键指令:小写转换大写,大写转小写
mov [si-1],al ;写回原位
Next_One: loop Translate
mov BYTE ptr [si],'$' ;用'$'替换回车符
mov cx,Letters ;出现过的不同字母的数目
mov si,Letter_Table ;出现过的字母及其次数地址
Disp_Letter: lodsw ;读入一个字
mov dl,al ;出现过的字母
call Output_Chr ;显示一个字符
mov dl,':'
call Output_Chr
mov dl,7 ;响铃字符码
call Output_Chr
xor al,al
xchg al,ah ;AX=字母出现的次数
call Dec_ASCII ;把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示
call Delay ;延时六分之一秒
call Output_CTLF
loop Disp_Letter
call Output_CTLF
Output Buffer[2] ;输出转换后的文章
; -------------------------------------
Exit_Proc: Output Press_Key ;提示操作完成,按任意键结束程序
mov ah,1
int 21h
mov ah,4ch ;结束程序
int 21h
Buffer db 255 ;字符串缓冲区
Code ENDS
END Start ;编译到此结束

五道VB程序分析题,答案有,求大神给分析一下程序过程,急!
8、输入一个数X,如果X>=0,则Y=1-2*X,否则的话Y=1+X 9、循环,直到i大于7,每次循环i增加3,X增加5 10、RND函数是返回一个0—1之间的随机数,所以取整后X为4(只取整数部分),输出结果必为GOOD 11、循环,每一次循环X=(X+3)*(X+4),N为循环次数,循环直到X>=60为止,输出N,X...

汇编语言 求解
MOV MAX,AL 五、编制程序题(第1小题6分,第2小题14分,共20分)1、编定程序段,用DOS的1号功能调用通过键盘输入一字符,并判断输入的字符。如字符是"Y",则转向YES程序段;如字符是"N",则 转向NO程序段;如是其他字符,则转向DOS功能调用,重新输入字符。(考生勿需写出源程序格式,只需写出...

软考中级软件设计师要学会哪种程序设计语言(我只学过C,C++,汇编)
2.通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;具有工程的实际工作能力和业务水平。 3.本考试设置的科目包括: (1) 计...

求高人解答:同一段程序在vc++ 6.0与turbo c运行结果不同的问题
造成这种结果 是 C语言在 ++j 定义上 的不严密性 造成的。q=(++j)+(++j)+(++j); 这同编译器编译时 的优化处理方式有关。VC++ 编译 时, 若编译选项 选用 优化 \/O1 或 优化 \/O2 ,结果 为 24 \/O1 minimize space 省空间优化 \/O2 maximize speed 使运算速度最快优化 默认结果为...

计算机三级证书有必要考吗?
计算机三级证书有必要考,计算机三级证书是工程师预备级。三级证书面向已持有二级相关证书的考生,考核面向应用、面向职业的岗位专业技能。三级证书表明持有人初步掌握与信息技术有关岗位的基本技能,能够参与软硬件系统的开发、运维、管理和服务工作。三级:分为“PC技术”、“信息管理技术”、“数据库技术”和...

相似回答