汇编模拟题-----编程题
内含汇编编程题若干。。。
1、设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关程序功能的指令):
Y= X 当X >=0
Y= 0 当X<0
解:mov al,x cmp a;,0 jge A1
mov al,0
A1:mov y,al
2在STR单元开始定义了一长度为LEN字节的字符串,统计出其中大写字母的个数并存放到LARGE字节单元中。 请编一完整的源程序。 DATA SEGMENT STR DB‘… …’ LEN EQU $-STR LARGE DB ? DATA ENDS CD EGMENT
ASSUME CS:CD,DSATA LARG PROC FAR MOV AX,DATA MOV DS,AX LEA SI,STR MOV CX,LEN MOV BL,0
NT:CMP BYTE PTR [SI],‘A’ JB NOLARG
CMP BYTE PTR [SI],‘Z’ JA NOLARG INC BL
NOLARG:INC SI LOOP NT MOV LARGE,BL MOV AH,4CH INT 21H LARG ENDP
CD ENDS END LARG
3、已知DAT1字节单元有一个数据,试编制一程序段将该数据的低4位变为1010B,最高位(第7位)置1,其余3位不变,结果送DAT2字节单元。 MOV AL,DATA1 AND AL,70H ADD AL,8AH MOV DATA2,AL
1
4、在N1和N2两数据区中,分别有10H个带符号数。试编制一源程序,找出对应项中较小的数据,并将这些较小的数据存入N3数据区中(要求:对应项比较时必须用CMPS指令)。
DATA SEGMENT
N1 DB ××,××,××,…… N2 DB ××,××,××,…… N3 DB 10H DUP(0) DATA ENDS
解:STACKSEG SEGMENT STACK DB 1024 DUP(0) STACKSEG ENDS DATA SEGMENT N1 DB
5Ah,6Fh,2Eh,0D8h,0E3h,9Ch,0DBh,0B7h,5Bh,21h,35h,8Eh,4Ah,15h,58h,75h N2 DB
58h,0FFh,5Eh,38h,0C7h,0A1h,26h,86h,48h,35h,48h,16h,0BAh,0FAh,0DFh,0E9h N3 DB 10H DUP(0) DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACKSEG START: MOV AX,DATA MOV DS,AX INC AX MOV ES,AX MOV SI,0FFFFH MOV DI,0FFFFH MOV CX,10h
MOV BX,OFFSET N3 CLD
AGAIN: CMPS BYTE PTR N1,BYTE PTR N2 JL N1LES MOV AL,[SI+10h] MOV [BX][SI],AL JMP CMPAGAIN N1LES: MOV AL,[sI]
MOV [BX][SI],AL CMPAGAIN: dec cx jnz again MOV AH,4CH INT 21H CODE ENDS END START
内含汇编编程题若干。。。
5、加密移动字符串,设缓冲区SBUFF中有20个小写字母a,将每个a加上它相对于缓冲区的位移量后传送到缓冲区DBUFF。
STACKSEG SEGMENT STACK DB 1024 DUP(0) STACKSEG ENDS DATA SEGMENT
SBUFF DB 20 DUP('a') DBUFF DB 20 DUP(0) DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACKSEG START: MOV AX,DATA MOV DS,AX MOV CX,20 MOV SI,0 CLD AGAIN: LODSB MOV BX,SI DEC BX ADD AX,BX
MOV DBUFF[SI-1],AL LOOP AGAIN DBUFF INT 21H MOV AH,4CH INT 21H
CODE ENDS END START
6、在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的和,并将和数存入以SUM为首址的数据区中。 DATA SEGMENT
BUF1 DW -56,24,54,-1,89,-8,…… BUF2 DW 45,-23,124,345,-265,…… SUM DW 10 DUP(0) DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA BEGIN: MOV AX,DATA MOV ES,AX MOV DS,AX LEA SI,BUF1
2
MOV BX, OFFSET BUF2 LEA DI,SUM MOV CX,10 L1:
MOV AX,[SI] ROL AX,1 JC L2 ROR AX,1 L4: MOV DX,AX MOV AX,[BX] ROL AX,1 JC L3 ROR AX,1 L5: ADD AX,DX MOV [DI],AX INC BX INC BX INC SI INC SI INC DI INC DI LOOP L1 JMP LAST L2: ROR AX,1 NEG AX JMP L4 L3: ROR AX,1 NEG AX JMP L5 LAST: MOV AH,4CH INT 21H CODE ENDS END BEGIN
7、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 DATAS SEGMENT MSG DB 0,0,"H ","$" CR DB 13,10,"$"
TAB1 DB "0123456789ABCDEF" DATAS ENDS
内含汇编编程题若干。。。
STACKS SEGMENT STACKS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,ES:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV ES,AX MOV CX,127 MOV DL,0
MOV SI,OFFSET TAB1 MOV DI,OFFSET MSG AG: PUSH CX PUSH DX MOV AX,0 MOV AL,DL MOV BL,10H DIV BL MOV BX,0 MOV BL,AH MOV DH,[SI+BX] MOV [DI+1],DH MOV BL,AL MOV DH,[SI+BX] MOV [DI],DH PUSH DX
MOV DX,OFFSET MSG MOV AH,9 INT 21H POP DX MOV AH,2 INT 21H PUSH AX
MOV DX,OFFSET CR MOV AH,9 INT 21H POP DX POP DX POP CX INC DL LOOP AG MOV AH,4CH INT 21H CODES ENDS
3
8、汇编程序,以BUF为首地址的内容存单元中有1~15的平方表。查表求X单元中数(1~15之间)的平方值并送回X单元 code segment
assume cs:code,ds:code org 100h start: push cs pop ds
lea bx,BUF ;BX指向表首 mov al,X dec al ;偏移送AL xlat ;查表
mov X,al ;平方值并送回X单元 mov ah,4ch int 21h BUF db
1,4,9,16,25,36,49,64,81,100,121,144,169,196,225 X db 8
code ends
end start
9、已知存储器中有一个首地址为ARRAY的100个字数组,现要求把数组中的每个数加1(不考虑溢出的可能性),试编制完成此功能的程序段。
MOV BX, OFFSET ARRAY MOV AX,1 MOV CX,100 LOOP1: ADD [BX],AX LOOP LOOP1
10、.编写一段程序,如果字节变量TESTONE和TESTTWO相等,则调用子程序,显示‘#’;否则调用NOTSAME子程序,显示‘!’。 data segment
infon db 0dh,0ah,'# $' infon2 db 0dh,0ah,'! $' TESTONE db 0dh,0ah,'2 $' TESTTWO db 0dh,0ah,'1 $' data ends
stack segment stack db 200 dup(0) stack ends
内含汇编编程题若干。。。
code segment
assume ds:data,ss:stack,cs:code start:
mov ax,offset TESTONE mov bx,offset TESTTWO cmp ax,bx je k2 jne k1
k1:call show k2:call NOTSAME
exit: mov ah,4ch int 21h
show proc near; lea dx,infon mov ah,9 int 21h ret show endp
NOTSAME proc near;
lea dx,infon2 ;在屏幕上显示提示信息 mov ah,9 int 21h ret
NOTSAME endp
code ends
end start
11、已定义了两个整数变量A和B,试编写程序完成下列功能:
A.若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。
B.若两个数均为奇数,则将两数均加1后存回原变量。 C.若两个数均为偶数,则两个变量均不改变。 (要求各段定义完整,并画出程序流程图) data segment a db …… 此处隐藏:4044字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




