Fork me on GitHub

随笔分类 -  汇编

摘要:1 ;========================================== 2 ;循环程序设计 3 ;判断一个字符串是否出现在另一个字符串中 4 DATAS SEGMENT 5 string1 db "your finger can change the world",0 6 string2 db "finger",0 7 flag db ? ;存在为1 不存在... 阅读全文
posted @ 2019-01-10 15:37 粥里有勺糖 阅读(1697) 评论(0) 推荐(0) 编辑
摘要:1 ;=============================== 2 ;循环程序设计 3 ;条件转移指令实现 4 ;冒泡排序 5 ;for(int i=0;i;j++){ 7 ; if(array[j]>array[j+1]){ 8 ; exchange(array[j],array[j+1]); 9 ; } 10 ; } ... 阅读全文
posted @ 2019-01-10 13:54 粥里有勺糖 阅读(740) 评论(0) 推荐(0) 编辑
摘要:1 ;=============================== 2 ;循环程序设计 3 ;loop指令实现 4 ;冒泡排序 5 ;for(int i=0;i;j++){ 7 ; if(array[j]>array[j+1]){ 8 ; exchange(array[j],array[j+1]); 9 ; } 10 ; } ... 阅读全文
posted @ 2019-01-10 13:52 粥里有勺糖 阅读(5508) 评论(4) 推荐(0) 编辑
摘要:1 ;=============================== 2 ;循环程序设计 3 ;模拟C语言实现break 与continue 4 DATAS SEGMENT 5 i dw 0 6 sum dw 0 7 DATAS ends 8 CODES SEGMENT 9 ASSUME CS:CODES, DS:DATAS 10 START: 11 ... 阅读全文
posted @ 2019-01-10 13:49 粥里有勺糖 阅读(726) 评论(0) 推荐(0) 编辑
摘要:1.loop指令实现 2.条件转移指令 阅读全文
posted @ 2019-01-09 20:46 粥里有勺糖 阅读(450) 评论(0) 推荐(0) 编辑
摘要:1 ;功能:16位的2进制数转为5位的10进制数并输出 2 DATAS SEGMENT 3 Num dw 1111100111B ;带转换的二进制数(<=16位 测试用例对应的10进制为999) 4 buffer db 5 dup(0) ;用来保存结果 5 jm dw 10000,1000,100,10,1 ;用于每次循环的除数 6 DATAS ends 7 C... 阅读全文
posted @ 2019-01-09 19:30 粥里有勺糖 阅读(3549) 评论(0) 推荐(0) 编辑
摘要:汇编代码: 阅读全文
posted @ 2019-01-09 18:28 粥里有勺糖 阅读(618) 评论(0) 推荐(0) 编辑
摘要:<hr> 阅读全文
posted @ 2019-01-09 18:13 粥里有勺糖 阅读(930) 评论(0) 推荐(0) 编辑
摘要:;分段函数计算 DATAS SEGMENT X db -1 Y db 3 F db ? DATAS ends CODES SEGMENT ASSUME CS:CODES, DS:DATAS START: mov AX,DATAS mov DS,AX mov ah,x mov al,y cmp a... 阅读全文
posted @ 2019-01-09 18:00 粥里有勺糖 阅读(822) 评论(0) 推荐(0) 编辑
摘要:;============================ ;1位16进制数到ASCII码转换 ; { X+30H (0≤X≤9) ;Y= { ; { X+37H (0AH≤X≤0FH) DATAS SEGMENT Num db 9 ASCII db ? DATAS ends CODES SEGMENT ASSUME CS:CODES, DS:DATAS START: ... 阅读全文
posted @ 2019-01-09 15:03 粥里有勺糖 阅读(2818) 评论(0) 推荐(0) 编辑
摘要:;三个数排序(从大到小) DATAS SEGMENT array db 12,250,123 DATAS ends CODES SEGMENT ASSUME CS:CODES, DS:DATAS START: mov AX,DATAS mov DS,AX mov si,offset array mov al,[s... 阅读全文
posted @ 2019-01-09 13:58 粥里有勺糖 阅读(1281) 评论(0) 推荐(0) 编辑
摘要:1 ;过滤字符串中的空格 2 DATAS SEGMENT 3 string db ' your finger can change the world0';待测试的字符串0作为结束符 4 DATAS ends 5 6 CODES SEGMENT 7 ASSUME CS:CODES, DS:DATAS 8 START: 9 mov A... 阅读全文
posted @ 2019-01-09 13:27 粥里有勺糖 阅读(1567) 评论(0) 推荐(0) 编辑
摘要:;统计字符串长度 DATAS SEGMENT string db 'hello world demo0';待计算的字符串以0结尾 DATAS ends CODES SEGMENT ASSUME CS:CODES, DS:DATAS START: mov AX,DATAS mov DS,AX call strlen ;调用s... 阅读全文
posted @ 2019-01-09 12:20 粥里有勺糖 阅读(2975) 评论(0) 推荐(0) 编辑
摘要:;小写变大写 DATAS SEGMENT DATAS ends CODES SEGMENT ASSUME CS:CODES, DS:DATAS START: mov AX,DATAS mov DS,AX call atA mov ah,4CH int 21h atA proc ;子程序 jmp dnext String ... 阅读全文
posted @ 2019-01-09 12:16 粥里有勺糖 阅读(440) 评论(0) 推荐(0) 编辑
摘要:1 ;输出寄存器AX中的内容(子程序) 2 DATAS segment 3 4 DATAS ends 5 CODES segment 6 START: 7 mov AX,DATAS 8 mov DS,AX 9 ;正式代码开始 10 mov AX,1AF4H ;设置需要显示的AX的值 11 call PrintAX ... 阅读全文
posted @ 2019-01-08 18:40 粥里有勺糖 阅读(1422) 评论(0) 推荐(0) 编辑
摘要:1 DATAS segment 2 Temp db '0000H','$' 3 DATAS ends 4 CODES segment 5 START: 6 mov AX,DATAS 7 mov DS,AX 8 ;正式代码开始 9 mov AX,12ABH ;设置需要显示的AX的值 10 mov si,offset T... 阅读全文
posted @ 2019-01-08 17:42 粥里有勺糖 阅读(5004) 评论(0) 推荐(0) 编辑
摘要:1 ;===================== 2 ;字符串中大写变小写 3 DATAS segment 4 String db 10, ?, 10 dup(?) ;最多接收10个字符,最后的回车算一个字符 5 DATAS ends 6 7 CODES segment 8 START: 9 mov AX,DATAS 10 mov DS,AX 11 ;... 阅读全文
posted @ 2019-01-08 16:40 粥里有勺糖 阅读(4009) 评论(0) 推荐(0) 编辑
摘要:1 ;==================================== 2 ; 统计寄存器AX中1 的个数 3 DATAS segment 4 5 DATAS ends 6 7 CODES segment 8 START: 9 mov AX,DATAS 10 mov DS,AX 11 ;正式代码部分 12 mov AX,100111... 阅读全文
posted @ 2019-01-08 16:16 粥里有勺糖 阅读(2036) 评论(0) 推荐(0) 编辑
摘要:1 ;================================= 2 ; HELLO world 3 DATAS segment 4 string DB 'HELLO World','$' 5 DATAS ends 6 7 CODES segment 8 START: 9 mov ax,DATAS 10 mov ds,ax 11 12 ... 阅读全文
posted @ 2019-01-08 16:11 粥里有勺糖 阅读(760) 评论(0) 推荐(0) 编辑
摘要:Tips: LEA指令与MOV指令的区别: ① MOV指令是 数据 传送指令 传送数据 LEA指令是 有效地址 传送指令 取偏移地址 ② MOV OPRD1 OPRD2 OPRD1: 目的操作数(寄存器,存储器,累加器) OPRD2: 源操作数(寄存器,存储器,累加器,立即数) 例如: 注意: 目的 阅读全文
posted @ 2018-12-07 00:36 粥里有勺糖 阅读(4025) 评论(0) 推荐(0) 编辑