汇编语言
汇编基础
是zg啊!
细水长流!
展开
-
求出首地址为DATA的10d字数组中的最小偶数,并把它存放在ax中
DATAS SEGMENT ;此处输入数据段代码 data dw 1,2,3,4,5,6,7,8,9,10 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 mov bx,0 mov cx,10原创 2021-07-09 02:37:17 · 326 阅读 · 0 评论 -
简化的歌德巴赫猜想:任何一个大于6的偶数均可以表示为两个素数之和。现从键盘输入一个0~65535 之间的无符号整数,试验证歌德巴赫猜想。
题目:简化的歌德巴赫猜想:任何一个大于6的偶数均可以表示为两个素数之和。现从键盘输入一个0~65535之间的无符号整数,试验证歌德巴赫猜想。如输入数12,输出:12=5+7如输入数20,输出:20=3+1720=7+13如输入数7,输出:Must be even如输入数3,输出:Must be greater than or equal to 6DATAS SEGMENT x dw ? string1 db 'Must be even',0dh,0ah,24h原创 2021-07-09 02:34:33 · 376 阅读 · 0 评论 -
试编写一个程序,实现对N字节的NUM的值求补,并把求补后的值仍保存在NUM中。
DATA SEGMENT NUM DB 12H,34H,56H,78H,9AH,0BCH,23H,45H DB 67H,89H,0DEH,13H,24H,35H,46H,57H N DB $ - NUM DATA ENDSSTACK SEGMENT DW 10 DUP(?)TOP LABEL WORDSTACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA MAIN PROC FAR原创 2021-07-09 02:29:06 · 179 阅读 · 0 评论 -
编写一个程序判断这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 three different from each other$' STRING2 DB 'On原创 2021-07-09 02:26:19 · 293 阅读 · 0 评论 -
编一个程序完成从键盘上输入一个4位的16进制数,并以八进制形式显示出来。
思路:无论输入的是0123……abcdef,还是0123……ABCDEF都可以被解析为16进制字符DATAS SEGMENT crlf db 0dh,0ah,24h DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码原创 2021-07-09 02:22:37 · 841 阅读 · 0 评论 -
输入一个数,判断该数否属于数列 1、2、4、5、7、9、10、12、14、16、17、19、21、23、25、······, 如果属于该数列,输出“YES”,否则输出“NO”。
(可能有用的算法:用减奇数次数的方法,求一个数的近似平方根,这个平方根是一个整数。如求 17 的平方根,可以用 17 相继减去奇数 1、3、5、7、…,当结果为负数或 0 时停止,即:17-1-3-5-7-9<0,可以看出,17 在减去 5 次奇数后结果变为负数,可以近似认为 17 的平方根在 4 与 5 之间。25-1-3-5-7-9=0,25 的平方根为 5)DATAS SEGMENT yes db 'YES',0dh,0ah,24h no db 'NO',0dh,0ah,24h原创 2021-07-09 02:12:08 · 991 阅读 · 0 评论 -
编写一个程序,将一个包含有 30 个字数据的数组 M 分成两个数组:奇数数组 ODD 和偶数数组 EVEN, 并把这两个数组中元素的个数以二进制形式显示出来(不能使用 DIV/IDIV 指令)。
DATAS SEGMENT M dw 30 dup(1) oddArray dw 30 dup(?) evenArray dw 30 dup(?) countOdd dw 0 countEven dw 0 string1 db 'The count of ODD is :',24h string2 db 'The count of EVEN is :',24h string3 db 0ah,0dh,24hDATAS ENDSSTACKS原创 2021-07-09 02:08:12 · 262 阅读 · 0 评论 -
编写一个程序,从键盘输入一个 0~65535 之间的 10 进制无符号数,然后以 16 进制形式显示出所 输入的数。
DATAS SEGMENT DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 mov bx,0 newChar: ;10进制输入 mov ah,1 int 21h sub al,3原创 2021-07-09 02:02:17 · 606 阅读 · 0 评论 -
编一个程序,实现从键盘输入一个长度不超过300个字符的串(以回车键作为输入结束),然后在下一行以倒序输出所输入的字符。
DATA SEGMENT STRING DB 300 DUP(?) crlf db 0dh,0ah,24hDATA ENDSSTACK SEGMENT STACK DW 10 DUP(?)TOP LABEL WORD STACK ENDSCODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV AX,STACK原创 2021-07-09 01:55:49 · 528 阅读 · 0 评论 -
试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示“MATCH”,若不相同则显示“NO MATCH”。
DATAS SEGMENT ;此处输入数据段代码 string1 db 'I am a student.' string2 db 'I am a student!' yes db 'MATCH',0dh,0ah,'$' no db 'NO MATCH',0dh,0ah,'$' DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS原创 2021-07-09 01:49:57 · 3512 阅读 · 1 评论