汇编实验
wengwenxuan
这个作者很懒,什么都没留下…
展开
-
图示HANOI的移动过程
图示HANOI的移动过程DATA SEGMENT A DW 5 ;用于标识哪一个盘在移动 SI SUM DW 4 ;总共有多少个盘 DI FIRSTPLANT DB 'A' ;第A根柱子 AX SECONDPLANT DB 'B' ;第B根柱子 BX THIRTHPLANT DB 'C' ;第C根...原创 2019-07-10 00:58:20 · 443 阅读 · 1 评论 -
已知数据块BUF中存放3个字数据,是编写一个程序判断这3个数的关系
已知数据块BUF中存放3个字数据,是编写一个程序判断这3个数的关系:如果3个数相等,则显示“All equal.”;如果有任意两个数相等,则显示“Only two equal.”;如果三个数各不相同,则显示“All three different from each other.”。DATA SEGMENT BUFF DB 2,2,2 STRING1 DB 'All thre...原创 2019-07-10 11:53:32 · 751 阅读 · 0 评论 -
.已知变量X的值为2767,请编程序统计变量X中的二进制值中1和0的个数,并记入ONE和ZERO变量中
.已知变量X的值为2767,请编程序统计变量X中的二进制值中1和0的个数,并记入ONE和ZERO变量中。DATA SEGMENT X DW 2767 ONE DB ? ZERO DB ?DATA ENDSSTACK SEGMENT stack DW 5 DUP(?) TOP LABEL WORDSTACK ENDSCODE SEGMENT ASS...原创 2019-07-10 12:23:55 · 380 阅读 · 0 评论 -
从键盘上输入一系列以$为结束符的字符串,然后对其中的字母字符计数,并显示出计数结果
从键盘上输入一系列以$为结束符的字符串,然后对其中的字母字符计数,并显示出计数结果。DATA SEGMENT SUM DW ?DATA ENDSSTACK SEGMENT stack DW 5 DUP(?) TOP LABEL WORDSTACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKMAIN ...原创 2019-07-10 12:28:34 · 2331 阅读 · 0 评论 -
试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示“MATCH”, 若不相同则显示“NO MATCH”
试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示“MATCH”,若不相同则显示“NO MATCH”。DATA SEGMENT STRING1 DB 'abcDEF' LEN1 DW $ - STRING1 STRING2 DB 'abcDEF' LEN2 DW $ - STRING2 STRING3 DB 'MATCH$' ...原创 2019-07-10 12:32:42 · 8102 阅读 · 0 评论 -
将输入缓冲区的内容写入到txt文件
data segment file db 'tes1.txt',0 buf db 100,?,100 dup(?) fh dw ? error_msg db 0dh,0ah,'error!','$' writer_msg db 0dh,0ah,'open file !input text:',0ah,'$' success_msg...原创 2019-07-10 12:54:01 · 1148 阅读 · 0 评论 -
文件中的大写转小写.TXT
DATA SEGMENT FILENAME DB 'A\TEST.TXT',0 FH DW ? BUF DB 1024 DUP (?) MSG DB 0DH,0AH,'ERROR!','$'DATA ENDSSTACKS SEGMENT STACK DW 60H DUP(?)TOP LABEL WORDSTACKS ENDSCODE...原创 2019-07-10 13:03:27 · 825 阅读 · 0 评论 -
文件复制
文件复制DATA SEGMENT FILE DB 'A\TEST.TXT',0 BUF DB 100 DUP(?) FH DW ? COPYFILE DB 'A\COPYTEXT.TXT',0 COPYFH DW ? ERROR_MSG DB 0DH,0AH,'ERROR!','$' SUCCESS_MSG DB 0DH,...原创 2019-07-10 15:57:43 · 111 阅读 · 0 评论 -
把ax中存放的16位二进制数K看作是8个二进制的“四分之一字节”。试编写一段程序,要求数一下值为3(即11B)的的四分之一字节数,并将该数在终端上显示出来。
把ax中存放的16位二进制数K看作是8个二进制的“四分之一字节”。试编写一段程序,要求数一下值为3(即11B)的的四分之一字节数,并将该数在终端上显示出来。DATA SEGMENT K DW 3856 ;可更改K的值DATA ENDSSTACK SEGMENT DW 5 DUP(?) TOP LABEL WORD ...原创 2019-07-10 16:07:29 · 1348 阅读 · 1 评论 -
在STRING到STRING+99单元中存放着一个字符串,试编制一程序,测试该字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置0
在STRING到STRING+99单元中存放着一个字符串,试编制一程序,测试该字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置0。DATA SEGMENT STRING DB 'NKVSIVBSSVKDBV',86 DUP('A')DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN PROC FAR M...原创 2019-07-10 16:22:10 · 2474 阅读 · 0 评论 -
在首地址为TABLE的数组中按递增次序存放着100H个16位补码数,试编写一程序把出现次数最多的数及其出现次数分别存放于AX和CX中
在首地址为TABLE的数组中按递增次序存放着100H个16位补码数,试编写一程序把出现次数最多的数及其出现次数分别存放于AX和CX中。DATA SEGMENT TABEL DW 3 DUP(-1),20 DUP(1),2 DUP(2),220 DUP(3),10 DUP(4)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN P...原创 2019-07-10 16:26:59 · 2571 阅读 · 4 评论 -
数据段中已定义了一个有n个字数据的数组M。试编写一程序,求出N中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址放在M+2(n+1)单元中
数据段中已定义了一个有n个字数据的数组M。试编写一程序,求出N中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址放在M+2(n+1)单元中。DATA SEGMENT M DW 10 DUP(5),10 DUP(2),5 DUP(-10) NUM DW ? ADRESS DW ?DATA ENDSCODE SEGMENT ASSUME DS:DATA,...原创 2019-07-10 16:30:59 · 2911 阅读 · 0 评论 -
试编制一个程序,把Ax中的16进制数转换为ASCII码,并将对应的ASCII码依次存放到MEM数组中的四个字节中
试编制一个程序,把Ax中的16进制数转换为ASCII码,并将对应的ASCII码依次存放到MEM数组中的四个字节中。例如,当(AX)=2A49H时,程序执行完后,MEM中的4个字节内容为39H,34H,41H和32H。DATA SEGMENT MEM DB 4 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN PRO...原创 2019-07-10 16:51:05 · 5405 阅读 · 0 评论 -
试编写一个程序,将一 个 长 整 数求补
以 下 面 形 式 定 义 一 个 长 整 数 , 其 所 占 用 字 节 数 由 N 得 到 , 比 如 128 位 的 数5746352413DE89674523BC9A78563412H 定义成:NUM DB 12H,34H,56H,78H,9AH,0BCH,23H,45HDB 67H,89H,0DEH,13H,24H,35H,46H,57HN DB $-NUM试编写一个程序,实现对...原创 2019-07-10 11:43:57 · 244 阅读 · 0 评论 -
编写一个程序,从键盘输入一个不大于16位的2进制数,然后以8进制形式显示出所输入的数。
编写一个程序,从键盘输入一个不大于16位的2进制数,然后以8进制形式显示出所输入的数。DATA SEGMENT ;可以写入代码DATA ENDS STACK SEGMENT DW 10 DUP(?)TOP LABEL WORDSTACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROC FAR...原创 2019-07-10 11:41:19 · 1589 阅读 · 0 评论 -
1. 从键盘输入一系列字符(以回车符结束,字符的个数不超过 200 个),统计输入字符串中数字与非数字字符的个数,并将计数结果输出。
从键盘输入一系列字符(以回车符结束,字符的个数不超过 200 个),统计输入字符串中数字与非数字字符的个数,并将计数结果输出。DATA SEGMENT BUFF DB 255,?,255 DUP('$') NUM DB ? ;字符串中数字个数 OTHER DB ? ;非数...原创 2019-07-10 10:33:58 · 7390 阅读 · 0 评论 -
有一个首地址为 LIST 的字数组,其中首单元保存数组的长度。试编制程序删除数组中所有为零的 项,并将后续项向前压缩,最后将数组的剩余部分补上零。
有一个首地址为 LIST 的字数组,其中首单元保存数组的长度。试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。DATA SEGMENT LIST DW 15,1,2,9,0,5,7,6,3,5,0,12,0,78,15,45 ;数组长15DATA ENDSSTACK SEGMENT STACK DW 10 DUP(?)TOP...原创 2019-07-10 10:42:08 · 592 阅读 · 0 评论 -
一组数(不超过 200 个数)已经存入字数组 Y 中,编程实现对这些数按照升序进行排列。
一组数(不超过 200 个数)已经存入字数组 Y 中,编程实现对这些数按照升序进行排列。DATA SEGMENT Y DW 12,15,19,98,53,0,56,45,78,233 ;数组内容元素及个数都可修改 SUM DW ($ - Y)/2 ;数组Y的元素个数DATA ENDSSTACK SEGMENT STACK ...原创 2019-07-10 10:45:32 · 398 阅读 · 0 评论 -
编一个程序,实现从键盘输入一个长度不超过 300 个字符的串(以回车键作为输入结束),然后 在下一行以倒序输出所输入的字符。
编一个程序,实现从键盘输入一个长度不超过 300 个字符的串(以回车键作为输入结束),然后在下一行以倒序输出所输入的字符。DATA SEGMENT STRING DB 300 DUP(?) DATA ENDSSTACK SEGMENT STACK DW 10 DUP(?)TOP LABEL WORD STACK ENDSCODE SEGMENT ASSUME ...原创 2019-07-10 10:57:10 · 3105 阅读 · 0 评论 -
编写一个程序,从键盘输入一个 0~65535 之间的 10 进制无符号数,然后以 16 进制形式显示出所 输入的数。
编写一个程序,从键盘输入一个 0~65535 之间的 10 进制无符号数,然后以 16 进制形式显示出所输入的数。CODE SEGMENT ASSUME CS:CODE MAIN PROC FAR XOR BX,BX MOV AX,0 MOV SI,10 L1:MOV AH,1 INT 21H CMP AL,0DH JE L3 AND A...原创 2019-07-10 11:08:28 · 1883 阅读 · 0 评论 -
编写一个程序,将一个包含有 30 个字数据的数组 M 分成两个数组:奇数数组 ODD 和偶数数组 EVEN, 并把这两个数组中元素的个数以二进制形式显示出来(不能使用 DIV/IDIV 指令)。
编写一个程序,将一个包含有 30 个字数据的数组 M 分成两个数组:奇数数组 ODD 和偶数数组 EVEN,并把这两个数组中元素的个数以二进制形式显示出来(不能使用 DIV/IDIV 指令)。DATA SEGMENT M DW 1,2,3,4,5,6,7,8,9,10,5 DUP(25),5 DUP(13),5 DUP(8),5 DUP(100) ODD DW 30 DUP(?)...原创 2019-07-10 11:11:02 · 983 阅读 · 0 评论 -
已知数组 A 包含 20 个互不相等的字整数,数组 B 包含 30 个互不相等的字整数,试编写一个程序, 将既在 A 数组中又在 B 数组中出现的数存放在数组 C1 中。
已知数组 A 包含 20 个互不相等的字整数,数组 B 包含 30 个互不相等的字整数,试编写一个程序,将既在 A 数组中又在 B 数组中出现的数存放在数组 C1 中。DATA SEGMENT A DW 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 B DW 0,1,2,3,21,22,23,4,5,6,7,8,9,2...原创 2019-07-10 11:14:26 · 3508 阅读 · 0 评论 -
已知在首地址为DATA的字数组中存放一系列有符号数(首元素为数据个数), 出它们的平均值放在变量AVER中,并求出数组中有多少个数大于该平均值,将大于平均值的元素个数保存 在变量COUNT中。
已知在首地址为DATA的字数组中存放一系列有符号数(首元素为数据个数),试编写一个程序求出它们的平均值放在变量AVER中,并求出数组中有多少个数大于该平均值,将大于平均值的元素个数保存在变量COUNT中。(注意,这些数据的累加和可能超出-32768~32767之间)DATA1 SEGMENT DATA DW 10,1,2,3,4,5,6,-7,-8,-9,10 AVER DW 5...原创 2019-07-10 11:18:58 · 2232 阅读 · 1 评论 -
编写一个程序,计算 1 + 2 + 3 + 4 + … + 100 的累加和,并把累加和以 2 进制形式显示出来(要使 用循环累加方法,不能使用公式 S=N*(N+1)/2=50*101=5050)
编写一个程序,计算 1 + 2 + 3 + 4 + … + 100 的累加和,并把累加和以 2 进制形式显示出来(要使用循环累加方法,不能使用公式 S=N*(N+1)/2=50*101=5050)。DATA SEGMENT ;可以写入代码DATA ENDSSTACK SEGMENT DW 10 DUP(?)TOP LABEL WORDSTACK ENDS ...原创 2019-07-10 11:25:20 · 9386 阅读 · 0 评论 -
LINK指向一个字线性表,其中的首单元保存线性表的长度,编一个程序,将该线性表中的偶数项 删除。
LINK指向一个字线性表,其中的首单元保存线性表的长度,编一个程序,将该线性表中的偶数项删除。DATA SEGMENT LINK DW 10,1,2,3,5,4,6,9,8,7,10DATA ENDSSTACK SEGMENT DW 10 DUP(?)TOP LABEL WORDSTACK ENDS CODE SEGMENT ASSUME CS:CODE...原创 2019-07-10 11:26:59 · 365 阅读 · 0 评论 -
设有 10 个学生的成绩分别是 76,69,84,90,73,88,99,63,100 和 80 分。统计 60-69分 ,70-79分,80-89分,90-99分 和 100 分的人数。
设有 10 个学生的成绩分别是 76,69,84,90,73,88,99,63,100 和 80 分。试编制程序统计 60-69分,70-79 分,80-89 分,90-99 分和 100 分的人数并分别存放到 S6,S7,S8,S9 和 S10 单元中(要求使用子程序)。DATA SEGMENT SCORE DB 76,69,84,90,73,88,99,63,100,80 S6...原创 2019-07-10 11:32:01 · 16305 阅读 · 5 评论 -
编写一个程序,从键盘输入一个不长于8位的四进制数,并将所输入的数以10进制数形式显示出来。
编写一个程序,从键盘输入一个不长于8位的四进制数,并将所输入的数以10进制数形式显示出来。DATA SEGMENT ;可以写代码DATA ENDSSTACK SEGMENT DW 10 DUP(?)TOP LABEL WORDSTACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA MAIN PRO...原创 2019-07-10 11:35:48 · 560 阅读 · 0 评论 -
已定义了两个整数变量A和B,完成下列功能: (1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中(2)若两个数均为奇数,则将两数均加1后存入原变量(3)若两个数均为偶数,则两个变量均不改变。
已定义了两个整数变量A和B,试编写程序完成下列功能:(1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中;(2)若两个数均为奇数,则将两数均加1后存入原变量;(3)若两个数均为偶数,则两个变量均不改变。DATA SEGMENT A DW 2 B DW 4DATA ENDSSTACK SEGMENT DW 10 DUP(?)TOP LABEL W...原创 2019-07-10 11:39:22 · 4083 阅读 · 3 评论 -
学生成绩排名
把0~100D之间的30个数存入以GRADE为首地址的30个字数组中,GRADE + i表示学号为i +1的学生的成绩。另一个数组RANK为30个学生的名次表,其中RANK+i的内容是学号为i+1的学生名次。编写一程序,根据GRADE中学生的成绩,将学生名次填入RANK数组中。DATA SEGMENT GRADE DW 10 DUP(10),5 DUP(5),10 DUP(20),5 ...原创 2019-07-10 16:57:17 · 712 阅读 · 0 评论