大三上汇编语言考试题(***)

发布时间:2024-07-04 17:01

前言

本文汇集北京理工大学大三汇编考试题(***)的部分内容,大部分源于网络,小部分自己修改,谨慎参考。

警告

本文仅用于学习交流,未经本人同意,不得转载。

没用的话

同时欢迎大家交流讨论,但是考完上机估计我就不想再看这些东西了,男的女的折磨,markdown貌似不支持汇编高亮,就这样吧。注释是我自己乱注的,慎看。
(还是要用冲击3星的梦想的,直接1星总觉得不甘心)

题1

现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk, 并将结果在显示器上显示

思路

这道题还是较为容易的,没想好写啥,一个一个比。注意下

MOV AH,0AH
INT 21H

第一个字节存的是缓冲区最大容量
第二个字节存的是实际字符数

参考代码
DATAS SEGMENT
    BUF1 db 'data,name,file,code,path,user,exit,quit,text','$'
    BUF2 db 100
    db ?
    db 100 dup (?) 
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX        ;用di,si就写
    ;输入字符进入缓冲区
    LEA DX,BUF2
    MOV AH,0AH
    INT 21H
    ;输入回车,双行数据
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    LEA SI,BUF1
    LEA DI,BUF2[2] 
    
    MOV CH,44       ;字符个数
    MOV CL,4        ;一组字符的个数
    CLD
ZONGCHULI:          ;判断是否比较完所有字符
    CMP CH,0
    JE END0
    
NEXTZIMU:
    CMPSB
    JNE NEXTWORD ;如果第一个字符都不相等,直接跳转到下一个字符 
    JMP AGAIN    ;如果第一个字符相等,继续比较
AGAIN:
    DEC CH
    DEC CL
    CMP CL,0
    JNE NEXTZIMU
    CALL CHANGE
    ;INC SI
    JMP ZONGCHULI
NEXTWORD:
    CMP CL,0    ;CL=0 找到相同的字符串
    JE A
    INC SI
    DEC CL
    DEC CH
    JMP NEXTWORD
A:  MOV CL,04H
    ; DEC CH
    LEA DI,BUF2[2]
    JMP ZONGCHULI
CHANGE PROC NEAR
    MOV BUF1[SI-4],'d'
    MOV BUF1[SI-3],'i'
    MOV BUF1[SI-2],'s'
    MOV BUF1[SI-1],'k'
    MOV CL,04H
    LEA DI,BUF2[2]
    RET
CHANGE ENDP
    
END0:
    LEA DX,BUF1
    MOV AH,09H
    INT 21H
    
    MOV AH,4CH
    INT 21H
CODES ENDS
 END START

题2

现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其删除, 并在显示器上显示。

思路

逐词判断,不同就打印,同就不打印

参考代码
DATAS SEGMENT
    BUF1 db 'data,name,file,code,path,user,exit,quit,text','$'
    BUF2 db 100 
    db ?
    db 100 dup(?) 
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX
    
    LEA DX,BUF2
    MOV AH,0AH
    INT 21H
    
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV CH,9H
    MOV CL,4H
    CLD
    
    LEA SI,BUF1
    LEA DI,BUF2[2]
    
ZONGCHULI:
    CMP CH,0
    JE END0
NEXTZIMU:
    CMPSB
    JNZ NEXTWORD
    DEC CL
    CMP CL,0
    JE CHANGE
    JMP NEXTZIMU
NEXTWORD:
    CMP CL,0    ;CL=0 找到相同的字符串
    JE DAYIN
    INC SI
    DEC CL
    ;DEC CH
    JMP NEXTWORD
DAYIN:  
    MOV DL,BUF1[SI-5]
    MOV AH,02H
    INT 21H
    
    MOV DL,BUF1[SI-4]
    MOV AH,02H
    INT 21H
    
    MOV DL,BUF1[SI-3]
    MOV AH,02H
    INT 21H
    
    MOV DL,BUF1[SI-2]
    MOV AH,02H
    INT 21H
    
    CMP BUF1[SI-1],'$'
    JE END0
    
    MOV DL,BUF1[SI-1]
    MOV AH,02H
    INT 21H
    
    MOV CL,04H
    LEA DI,BUF2[2]
    DEC CH
    JMP ZONGCHULI
    
CHANGE:
    INC SI
    DEC CH
    MOV CL,4
    LEA DI,BUF2[2]
    JMP ZONGCHULI
END0:

    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

题3

在多模块设计中,主模块中调用内部模块buf1,buf2,buf3,buf4。主模块根据键盘输入的指令(如:a,b,c,d)调用上述对应的子程序,每个子程序的任务是显示其入口地址。调用后继续等待调用,若输入ESC键(ASCII码为1BH)则结束程序的执行。请编写完成该任务的程序。

思路

注意END MAIN 和十六进制显示

参考代码
DATAS SEGMENT
    BUF DW BUF1,BUF2,BUF3,BUF4  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
    
;编写主程序
MAIN PROC NEAR ;FAR??
    START:
    MOV AX,DATAS
    MOV DS,AX
    
L:  MOV AH,01H
    INT 21H
    
    ;和ESC键比较
    CMP AL,1BH
    JE END0
    ;关键字比较
    CMP AL,'a'
    JE ISA
    CMP AL,'b'
    JE ISB
    CMP AL,'c'
    JE ISC
    CMP AL,'d'
    JE ISD
    
    JMP L    ;寻找下一个关键字
ISA:
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    ;换行回车/ENTER
    
    CALL BUF1  ;调用buf1子程序
    JMP L
ISB:
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    ;换行回车/ENTER
    
    CALL BUF2  ;调用buf2子程序
    JMP L
ISC:
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    ;换行回车/ENTER
    
    CALL BUF3  ;调用buf3子程序
    JMP L
ISD:
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    ;换行回车/ENTER
    
    CALL BUF4  ;调用buf4子程序
    JMP L
END0:
    MOV AH,4CH
    INT 21H
    RET
MAIN ENDP

    BUF1 PROC NEAR
    MOV BX,OFFSET BUF1  ;BX真的稳
    CALL DISP ;调用显示程序
    RET
    BUF1 ENDP

    BUF2 PROC NEAR
    MOV BX,OFFSET BUF2  ;BX真的稳
    CALL DISP ;调用显示程序
    RET
    BUF2 ENDP

    BUF3 PROC NEAR
    MOV BX,OFFSET BUF3  ;BX真的稳
    CALL DISP ;调用显示程序
    RET
    BUF3 ENDP

    BUF4 PROC NEAR
    MOV BX,OFFSET BUF4  ;BX真的稳
    CALL DISP ;调用显示程序
    RET
    BUF4 ENDP

    ;显示
DISP PROC NEAR
MOV CH,4   ;16b
L1:
MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH ;取低四位
CMP AL,9
JBE SHUZI
ADD AL,7   ;字母+7
SHUZI:
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
DEC CH
CMP CH,0
JNZ L1
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
DISP ENDP
CODES ENDS
    ;个人猜测 定义主程序要把END START 换成END MAIN
    END MAIN

题4

现有一控制程序共5个工序,要求输入0-4的序号,分别执行各工序的子程序,每个子程序的任务是显示其入口地址。调用后继续等待调用,按回车则结束程序的执行。

思路

上题改一改就完事了

参考代码
DATAS SEGMENT
    BUF DW BUF1,BUF2,BUF3,BUF4,BUF5
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
    
;编写主程序
MAIN PROC NEAR ;FAR??
    START:
    MOV AX,DATAS
    MOV DS,AX
    
L:  MOV AH,01H
    INT 21H
    
    ;和回车键比较
    CMP AL,0DH
    JE END0
    ;关键字比较
    CMP AL,'0'
    JE ISA
    CMP AL,'1'
    JE ISB
    CMP AL,'2'
    JE ISC
    CMP AL,'3'
    JE ISD
    CMP AL,'4'
    JE ISE
    
    JMP L    ;寻找下一个关键字
ISA:
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    ;换行回车/ENTER
    
    CALL BUF1  ;调用buf1子程序
    JMP L
ISB:
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    ;换行回车/ENTER
    
    CALL BUF2  ;调用buf2子程序
    JMP L
ISC:
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    ;换行回车/ENTER
    
    CALL BUF3  ;调用buf3子程序
    JMP L
ISD:
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    ;换行回车/ENTER
    
    CALL BUF4  ;调用buf4子程序
    JMP L
    
ISE:
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    ;换行回车/ENTER
    
    CALL BUF5  ;调用buf4子程序
    JMP L
END0:
    MOV AH,4CH
    INT 21H
    RET
MAIN ENDP

    BUF1 PROC NEAR
    MOV BX,OFFSET BUF1  ;BX真的稳
    CALL DISP ;调用显示程序
    RET
    BUF1 ENDP

    BUF2 PROC NEAR
    MOV BX,OFFSET BUF2  ;BX真的稳
    CALL DISP ;调用显示程序
    RET
    BUF2 ENDP

    BUF3 PROC NEAR
    MOV BX,OFFSET BUF3  ;BX真的稳
    CALL DISP ;调用显示程序
    RET
    BUF3 ENDP

    BUF4 PROC NEAR
    MOV BX,OFFSET BUF4  ;BX真的稳
    CALL DISP ;调用显示程序
    RET
    BUF4 ENDP
    
    BUF5 PROC NEAR
    MOV BX,OFFSET BUF5  ;BX真的稳
    CALL DISP ;调用显示程序
    RET
    BUF5 ENDP

    ;显示
DISP PROC NEAR
MOV CH,4   ;16b
L1:
MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH ;取低四位
CMP AL,9
JBE SHUZI
ADD AL,7   ;字母+7
SHUZI:
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
DEC CH
CMP CH,0
JNZ L1
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
DISP ENDP
CODES ENDS
    ;个人猜测 定义主程序要把END START 换成END MAIN
    END MAIN

题5

一个有符号字数组以0为结束标志,编程求这个数组的最大值、 最小值、平均值。

思路

难点在于平均值的求取,有空补上详细思路

参考代码
DATAS SEGMENT
    BUF DW 6FFFH,7FFFH,0
    
    MAX DW 0000H
    MIN DW 0000H
    EVA DW 0000H
    
    NUM DW 16
    OPT DB 'THE MAX IS '
    OMAX DB '0000H',0DH,0AH,'THE MIN IS '
    OMIN DB '0000H',0DH,0AH,'THE EVA IS '
    OEVA DB '0000H$'
    
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
MAIN PROC NEAR
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    
    CALL FMAX
    CALL FMIN
    CALL FEVA
    CALL TRAN
    
    LEA DX,OPT
    MOV AH,09H
    INT 21H
    
    MOV AH,4CH
    INT 21H
MAIN ENDP

FMAX PROC NEAR
     MOV AX,BUF
     LEA BX,BUF+2
F1:  MOV DX,[BX]
     CMP DX,0
     JE EMAX
     CMP AX,DX
     JG NMAX
     MOV AX,DX
NMAX:
     ADD BX,2
     JMP F1
EMAX:
     MOV MAX,AX
     RET
FMAX ENDP

FMIN PROC NEAR
     MOV AX,BUF
     LEA BX,BUF+2
F2:  MOV DX,[BX]
     CMP DX,0
     JZ EMIN
     CMP AX,DX
     JL NMIN
     MOV AX,DX
NMIN:
     ADD BX,2
     JMP F2
EMIN: 
     MOV MIN,AX
     RET
FMIN ENDP

FEVA PROC NEAR
     MOV AX,BUF
     MOV CX,1
     ;MOV DX,0
     MOV DI,0
     LEA SI,BUF+2
F3:  
     MOV BX,[SI]
     CMP BX,0
     JE EEVA
     JG NF3
     ADD DI,1
NF3:
     ADD AX,BX
     ADC DX,0
     ADD SI,2
     INC CX
     JMP F3
EEVA:
     SUB DX,DI
     IDIV CX
     MOV EVA,AX
     RET
FEVA ENDP

TRAN PROC NEAR
     MOV AX,MAX
     LEA BX,OMAX+3
     CALL TRANS
     
     MOV AX,MIN
     LEA BX,OMIN+3
     CALL TRANS
     
     MOV AX,EVA
     LEA BX,OEVA+3
     CALL TRANS
     
     RET
TRAN ENDP

TRANS PROC NEAR
     MOV CX,4
L1:
     MOV DX,0
     DIV NUM
     CMP DL,9
     JNA NEXT
     ADD DL,7
NEXT: 
     ADD [BX],DL
     DEC BX
     LOOP L1
     RET
TRANS ENDP

CODES ENDS
    END MAIN

题6

在BUFFER中定义了的十个带符号字,将其中的负数变成绝对值,并以十进制方式输出。

思路

没啥好说的,看第五题

参考代码
ASSUME CS:CODES,DS:DATAS
DATAS SEGMENT
    BUFFER DW 0FFFEH,-5555,-4444,-3333,-2222,-1111,0,11111,22222,5333
    ;10个数20个字节
    RST DB 5 DUP(?);14H开始
    KONG DB 0DH,0AH,'$';用于显示回车换行
DATAS ENDS

CODES SEGMENT
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV SI,0;与BUFFER配合使用用来处理数据
    MOV CX,10
COMP:
    MOV DI,0;指向RST的第一位
    CMP BUFFER[SI],0
    JGE ISPOS;判断是否为非负数
    NEG BUFFER[SI];如果是负数执行这步,如果不是跳过去
ISPOS:
	MOV BX,10
	MOV AX,BUFFER[SI];将待处理的数移入AX
TOTEN:	
	;CWD;扩展成双字型数据(AX)->(DX)+(AX)相当于把(DX)清零
	MOV DX,0
	DIV BX;(BX) = 0AH相当于不断除以10余数保存在DX里
	;AND DL,0FH;0FH = 1111B
	ADD DL,30H;(DL)+30H转换为asc码
	MOV RST[DI],DL;保存asc码
	INC DI
	CMP AX,0;字符是否全部处理完
	JNE TOTEN
PRINT:	
	DEC DI;因为四个数字都是一样的
	MOV DL,RST[DI]
	MOV AH,02H;显示
	INT 21H
	
	CMP DI,0
	JNE PRINT;打印这5个字节的asc码
	LEA DX,KONG;显示回车换行
	MOV AH,09H
	INT 21H
	ADD SI,2;处理下一个字节
    LOOP COMP
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

题7

已知数组A包含20个互不相等的字型整数,数组B包含30个互不相等的字型整数,试编制一程序把在A中而不在B中出现的整数放于数组C中。

思路

一个一个比 这个简单 清0 永远滴神

参考代码
DATAS SEGMENT
     BUFA DW 0000H,0011H,0022H,0033H,0044H,0055H,0066H,0077H,0088H,0099H;不加,
          DW 7777H,7777H,7777H,7777H,7777H,7777H,7777H,7777H,7777H,7777H 
     BUFB DW 0000H,0011H,0022H,0033H,0044H,0055H,0066H,0077H,0088H,0099H
          DW 1011H,1022H,1033H,1044H,1055H,1066H,1077H,1088H,1099H,1000H
          DW 2011H,2022H,2033H,2044H,2055H,2066H,2077H,2088H,2099H,2000H
     BUFC DW 20 DUP(0) ;最多就是20
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX
    ;清0,YYDS
    MOV SI,0
    MOV DI,0
    MOV BX,0
    ;清0,YYDS
COMPARE:
    MOV AX,BUFA[SI]
    MOV CX,BUFB[DI]
    CMP AX,CX
    JNE BNEXT
ANEXT:
    ADD SI,2
    CMP SI,40
    JE END0
    
    MOV DI,0
    JMP COMPARE
BNEXT:
    ADD DI,2
    CMP DI,60
    JE LOADC
    JMP COMPARE
LOADC:
    MOV BUFC[BX],AX
    ADD BX,2
    JMP ANEXT
END0:
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

题8

已知数组A包含20个互不相等的字型整数,数组B包含30个互不相等的字型整数,试编制一程序把既在A中又在B中出现的数存放于数组C中。

思路

同上吧,感觉没什么复杂逻辑

参考代码
DATAS SEGMENT
     BUFA DW 0000H,0011H,0022H,0033H,0044H,0055H,0066H,0077H,0088H,0099H;不加,
          DW 7777H,7777H,7777H,7777H,7777H,7777H,7777H,7777H,7777H,7777H 
     BUFB DW 0000H,0011H,0022H,0033H,0044H,0055H,0066H,0077H,0088H,0099H
          DW 1011H,1022H,1033H,1044H,1055H,1066H,1077H,1088H,1099H,1000H
          DW 2011H,2022H,2033H,2044H,2055H,2066H,2077H,2088H,2099H,2000H
     BUFC DW 20 DUP(0) ;最多就是20
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX
    ;清0,YYDS
    MOV SI,0
    MOV DI,0
    MOV BX,0
    ;清0,YYDS
COMPARE:
    MOV AX,BUFA[SI]
    MOV CX,BUFB[DI]
    CMP AX,CX
    JE LOADC
    JMP BNEXT
BNEXT:
    ADD DI,2
    CMP DI,60
    JE ANEXT
    JMP COMPARE
ANEXT:
    ADD SI,2
    CMP SI,40
    JE END0
    
    MOV DI,0
    JMP COMPARE
LOADC:
    MOV BUFC[BX],AX
    ADD BX,2
    JMP ANEXT
END0:
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

题9

判断一个不超过65535的整数是否为质数。

思路

判断质数的方法:

  1. 0 1 2直接就是质数
  2. BUF 放在bx 中,不是的话bx-1
  3. buf/bx DX=0 不是
  4. DX≠0 直到DX=1 是
参考代码
DATAS SEGMENT
    BUF DW 8
    YES DB 'YES','$'
    NO  DB 'NO','$' 
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    
    MOV BX,BUF
    CMP BX,2
    JBE SHI ;小于等于2 必定是质数
    DEC BX   ;BX-1
    
LOOP1:
    CMP BX,1
    JE SHI
    MOV AX,BUF
    MOV DX,0
    DIV BX
    CMP DX,0
    JE BUSHI
    DEC BX
    JMP LOOP1
BUSHI:
    LEA DX,NO
    MOV AH,9
    INT 21H
    JMP END0
SHI:
    LEA DX,YES
    MOV AH,9
    INT 21H
    JMP END0
END0:
    
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

题10

在内存中定义一个用于加密的key和明文字符串,key中的每个数字表示将明文字符串中的对应字符进行旋转移位的次数,负数表示左移位,正数表示右移位。加密key的长度为10个字节:-2, 4, 1, 0, -3, 5, 2, -4, -4, 6。先用加密key处理字符串的前10个字节,再处理接下来的10个字节,以此类推。将密文字符串保存在另一个变量中。

思路

暂无 待补充

参考代码
DATAS SEGMENT
      BUF1 DB 'ABCDEFGHIJABCDEFGHIJ'
      l1 equ $-BUF1
      BUF2 DB -2,4,1,0,-3,5,2,-4,-4,6
      l2 db 10
      BUF3 DB 100 DUP(?)
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX
    
    MOV SI,0
    MOV DI,0
    
    MOV BH,l1
    MOV BL,l2
    
L:
    MOV AH,BUF1[SI]
    MOV AL,BUF2[DI]
    CMP AL,0
    JL ZUO 
    MOV CL,AL
    ROR AH,CL
    MOV BUF3[SI],AH
    JMP NEXT
ZUO:
    NEG AL
    MOV CL,AL
    ROL AH,CL
    MOV BUF3[SI],AH
    JMP NEXT
NEXT:
    DEC BL
    DEC BH
    CMP BH,0
    JE END0
    INC SI
    CMP BL,0
    JE L3
    INC DI
    JMP L
L3:
    MOV DI,0
    MOV BL,l2
    JMP L
END0:
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

题11

在内存中定义一个用于加密的key和明文字符串,用这个key的每个字符依次和明文字符串的对应字符进行异或操作得到密文字符串,并将密文字符串保存在另一个变量中。例如:key为“ABXmv#7”
在这里插入图片描述

思路

最简单的一道,没啥说的,再补充吧

参考代码
DATAS SEGMENT
    BUF1 DB 'ABCDEFGHIJ'
    l1 equ $-BUF1
    BUF2 DB 'ABXmv#7'
    l2 equ $-BUF2
    BUF3 DB 100 DUP(?)
DATAS ENDS 

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX
    
    MOV SI,0
    MOV DI,0
CHULI
    MOV AH,BUF1[SI]
    MOV AL,BUF2[DI]
    XOR AH,AL
    MOV BUF3[SI],AH
    
    INC SI
    CMP SI,l1
    JE END0
    INC DI
    CMP DI,l2
    JE HUI
    JMP CHULI
HUI:
    MOV DI,0
    JMP CHULI
ENDO:
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号