汇编(仅供学习参考)
浪在冰城
原谅我一生放荡不羁爱自由 个人微信公众号:KeepYourAims
展开
-
win64环境下运行汇编程序
因为masm.exe和link.exe文件只有win32位下才能直接运行。在64位系统下就会报错:系统不兼容但是,我们不能因为这个就放弃学汇编程序首先,我们需要准备dos—box软件,直接搜dos-box。安装运行。然后在电脑磁盘上建立一个文件夹,例如:在E盘上建立一个文件huibain,这个文件夹里有一个文件夹masm5.0,文件里有masm.exe,link.exe,debug.e原创 2016-10-22 20:00:56 · 2698 阅读 · 0 评论 -
汇编语言:顺序和分支程序设计
内容1:编程将内存数据段字节单元INDAT存放的一个数n(假设0≤ n ≤9 ),以十进制形式在屏幕上显示出来。data segmentindat db 8data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dl,indat add dl,30h mov ah,2原创 2016-10-23 10:45:12 · 6400 阅读 · 0 评论 -
汇编程序——把数据段中的串string1传送到附加段的string2中
源代码:data segment ;定义数据段string1 db ‘assembly language’data endsextra segment ;定义附加段string2 db 17 dup(?)extra segmentcode segment ;定义代码段 assume cs:code,ds:data,es:extrastart: pu原创 2016-10-23 17:47:18 · 9197 阅读 · 1 评论 -
汇编程序——循环与分支结构
【例1】编程将内存数据段字节单元INDAT存放的一个数n(假设0≤ n ≤9 ),以十进制形式在屏幕上显示出来。例如,若INSTR单元存放的是数8,则在屏幕上显示:8D。思路:首先需要数据段里定义原创 2016-11-30 16:18:38 · 3413 阅读 · 0 评论 -
编制一个程序把BX寄存器内的二进制数用十六进制的形式在屏幕上显示出来
代码:code segment assume cs:codestart: mov bx,1234H sub ax,ax mov ch,4rotate: mov cl,4 rol bx,cl mov al,bl and al,0fH add al,30H cmp al,3aH jl print add al,7Hprint: mov dl,al mov a原创 2016-10-30 15:53:17 · 9994 阅读 · 1 评论 -
汇编语言——十进制显示Bx的值
本例分两步实现。(1)转换并保存结果这一步将二进制数转换为十进制值,即求出十进制值各位上的数字。由于16位二进制数最大能表示的数是65535,所以,转换后,最多是一个万位的十进制数。转换的步骤就是:把要转换的数依次除以10000,1000,100和10,分别可以得到万位数字、千位数字、百位数字和十位数字。除以10得到的余数就是个位数字。程序中,将得到的这些数字先存入内存指定单元,供显示模块原创 2016-11-30 17:38:01 · 4320 阅读 · 1 评论 -
汇编语言——冒泡排序
请用冒泡排序法编程将内存ARRAY单元开始存储的一组8位带符号数据按从大到小排列 :冒泡法:N个数要进行N-1趟。第一趟从第一个开始一次对相邻两个数进行比较,若数的大小次序错误,则交换,否则不作任何操作。进行N-1次比较结束时,最小数排在最后。然后,进行第二趟,只需要进行N-2次比较,就可排好次小数。第三趟,进行N-3次比较,………依次类推。代码:DATA SEGMENT原创 2016-11-30 17:47:28 · 2632 阅读 · 0 评论 -
汇编程序——在屏幕上显示一个字符串“Hello”
源代码:data segmentstring db 'Hello',13,10,'$' ;字符串以’$’符号结尾,以单引号括起来data endscode segmentDD assume cs:code,ds:data start: ;程序的入口地址 push ds ;save old data segment sub ax,ax ;ax寄存器清零,原创 2016-10-23 17:55:14 · 24567 阅读 · 3 评论