汇编语言
寒泉Hq
当你试图解决一个你不理解的问题时,复杂化就产生了
展开
-
汇编语言 利用栈 将数据逆序存放
题目要求利用栈,将程序中定义的数据逆序存放数据如下:0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h运行效果交换前交换后代码;利用栈,将程序中定义的数据逆序存放assume cs:code,ds:data,ss:stackdata segment dw 0123h,0456h,0789h,0abch,0defh,0fe...原创 2019-03-19 14:36:47 · 13972 阅读 · 0 评论 -
汇编语言 向内存0:200~0:23f依次传送数据0~63(3fh)
题目要求向内存0:200~0:23f依次传送数据0~63(3fh)分析0:200~0:23f也就是0000:0200~00000:023f运行结果代码;向内存0:200~0:23f依次传送数据0~63(3fh);分析0000:0200~00000:023f; assume cs:codecode segment mov ax,0h mov ds,ax mov bx...原创 2019-03-19 09:48:31 · 22478 阅读 · 7 评论 -
汇编语言 段前缀的使用 复制内存单元数据到指定位置
题目要求将内存ffff:0~ffff:b单元中的数据复制到0:200~0:20b单元中分析0:200~0:20b可以转化为0200:0~0200:b执行结果代码;将内存ffff:0~ffff:b单元中的数据复制到0:200~0:20b单元中;分析 0:200~0:20b可以转化为0200:0~0200:bassume cs:codecode segment ;让bx指向...原创 2019-03-19 09:24:12 · 12046 阅读 · 0 评论 -
汇编语言 计算ffff:0006单元中的数乘以3,结果存在dx中
容易混淆ffff:0~ffff:b内存单元是字节型数据字节型数据,数据范围0~~255,无论什么数据,一个内存单元占1字节,普通的内存单元数据范围0000h~ffffh题目要求分析:ffff:0006单元中是一个字节型数据,范围在0~255之间,则用它乘以3,结果不会大于65535,也就是在dx中可以放下,不会溢出运行结果ffff:0006单元中的数是什么?2F31所以正确的答案应...原创 2019-03-18 22:09:21 · 10610 阅读 · 0 评论 -
汇编语言 用加法计算123*236,结果存在ax中
题目要求用加法计算123*236,结果存在ax中分析123个256相加(循环123次)123的十六进制是7bh236的十六进制是0ech运行结果代码;用加法计算123*236,结果存在ax中;123个256相加(循环123次);123的十六进制是7bh;236的十六进制是0echassume cs:codecode segment mov ax, 0 mov cx...原创 2019-03-18 21:37:20 · 11299 阅读 · 0 评论 -
汇编语言 LOOP和[BX]的联合应用
要求计算ffff:0~ffff:b单元中数据的和,结果存在DX中答案答案是0405代码1 无循环assume cs:codecode segment mov ax,0ffffh mov ds,ax mov dx,0 mov al,ds:[0] mov ah,0 add dx,ax mov al,ds:[1] mov ah,0 add dx,ax m...原创 2019-03-18 19:19:09 · 9041 阅读 · 1 评论 -
汇编语言 修改显存 在屏幕上显示图案
原理0b810:0000是显存地址,直接修改其中的内容会在屏幕上显示ascii码的对应内容效果在最上面一行右边代码assume cs:codesgcodesg segmentfishcc: mov ax,0b810h ;借助ax存放ds mov ds,ax ;将ax中的地址放入ds数据段寄存器 mov bx,0h ;1 借助bx存放ds的偏移地址 ...原创 2019-03-17 22:05:07 · 10655 阅读 · 2 评论 -
汇编语言 masm常见报错原因
1、test.asm(54): error A2000: Block nesting error说明:此错误信息通常见于一个段定义起始段名和末尾段名不一致。修改:检查段定义,使段名前后保持一致。2、test.asm(5): error A2005: Symbol is multidefined: DATA说明:此错误信息提示DATA符号重复定义了。修改:将其中一个符号DATA重新设置。...原创 2019-03-17 21:27:12 · 18939 阅读 · 0 评论 -
汇编语言 DS段寄存器
运行结果,注意AX后两位(al)的改变原创 2019-03-12 20:19:30 · 7929 阅读 · 0 评论 -
汇编语言 修改内存中的过时数据
题目要求编程,修改内存中的过时数据运行过程改之前改数字之后改字母之后代码;编程,修改内存中的过时数据;存放ascii码用db,存放数据用dwassume cs:codesg,ds:datasgdatasg segment db 'DEC' db 'Ken Oslen' dw 137 ;改成38 dw 40 ;改成70 db 'PDP' ...原创 2019-03-21 10:31:11 · 10910 阅读 · 0 评论 -
汇编语言 循环嵌套 将datasg段中每个单词改为大写字母 改进版
题目要求将datasg段中每个单词改为大写字母思路注意用al存放ascii即可大写对应的ascii第五位是0,除了第五位以外不变 and al,11011111b注意循环嵌套的时候 只有一个cx不够用怎么办 可以放在dx中临时存储 等内循环执行完毕后 再从dx中将cx取出 即可正常嵌套循环运行过程执行前:所有行都是小写执行完一遍外循环:第一行变成大写执行完所有外循环:所有行...原创 2019-03-20 15:51:11 · 10695 阅读 · 0 评论 -
汇编语言 利用ASCII以及AND OR进行字符串大小写转换
题目要求将datasg中的第一个字符串转化为大写,第二个字符串转化为小写题目分析注意:用al存放ascii即可大写对应的ascii第五位是0,除了第五位以外不变小写对应的ascii第五位是1,除了第五位以外不变执行过程datasg数据存储情况下图,可以看出BaSic和iNfOrMaTiOn是紧挨着存储的执行完第一个循环s1后,前5个字母全部转化为大写执行完第二个循环s1后...原创 2019-03-20 13:48:33 · 10592 阅读 · 0 评论 -
汇编遇到的问题
为什么说“立即数格式错误”?原创 2019-03-16 11:00:31 · 5399 阅读 · 0 评论 -
汇编语言 用push指令将a段中的前8个字形数据,逆序存储到b段中
题目要求用push指令将a段中的前8个字形数据,逆序存储到b段中执行过程push之前a段数据(b段数据)栈空间↓ 不要问我为什么不全是0,我并不完全知道,只是找出了一些规律。详见我的前一篇博客“明明定义了栈仍然no stack segment 以及栈空间数据被篡改问题”https://blog.csdn.net/sinat_42483341/article/details/8866...原创 2019-03-20 12:31:30 · 11271 阅读 · 1 评论 -
汇编语言 将a段和b段中的数据依次相加,结果存放在c段中
题目要求将a段和b段中的数据依次相加,结果存放在c段中思路先将asg的数据放进csg中把bsg的数据与csg中的数据相加,存到csg中注意db定义字节类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1dw定义字类型变量,一个字数据占2个字节单元,读完一个,偏移量加2dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4易错:本题中用db定义,所以用ax接收...原创 2019-03-19 20:04:04 · 13129 阅读 · 2 评论 -
Win10 64位 汇编环境的搭建: 安装配置 DOSBOX、MASM
win10 cmd没有debug模式需要进入 debug 调试模式下学习汇编语言时,会出现类似以下的错误提示:这是因为他们使用的是 64 位的 Windows 系统(Win 7,Win 8 以及 Win 10 等),而 64 位 Windows 系统不再支持在命令提示符窗口下进入 debug 调试模式。那么对于使用 64 位 Windows 系统的用户来说,该怎样才能够顺利进入 debug ...原创 2019-03-15 10:28:07 · 12070 阅读 · 8 评论 -
汇编语言 明明定义了栈仍然no stack segment 以及栈空间数据被篡改问题
参考原博客:https://blog.csdn.net/sxhelijian/article/details/69338661 这篇写的很好可以看看在连接过程中,连接器并未因为有“stacksg segment”,和assume了“ss:stacksg”就认为设置了堆栈段。 怎样做才能被承认呢? 找度娘,说是将段定义写成下面的形式:stacksg segment stack ...原创 2019-03-19 16:21:41 · 16109 阅读 · 3 评论 -
汇编语言 【大练习】寻址方式在结构化访数据访问中的应用
第一次外循环中,执行完第一个内循环year第一次外循环中,执行完第二个内循环income第一次外循环中,执行完第三个内循环income第一次外循环中,执行完后续除法运算执行完所有外循环后的结果执行完毕~代码以下可复制assume cs:codesg,ds:datasg,ds:tablesg,ss:stacksgdatasg segment db '1975...原创 2019-03-23 21:10:30 · 9883 阅读 · 0 评论