教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

汇编模拟题-----编程题

来源:网络收集 时间:2026-09-04
导读: 内含汇编编程题若干。。。 1、设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关程序功能的指令): Y= X 当X =0 Y= 0 当X0 解:mov al,x cmp a;,0 jge A1 mov al,0 A1:mov y,al 2在STR单元开始定义了一长度为LEN字节的字符串,统计出其中

内含汇编编程题若干。。。

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

汇编模拟题-----编程题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/110017.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)