
汇编语言
书法教育1
你付出很多,能量守恒,你也会收获很多,相反你总是想着从别人那里得到更多,自己付出很少,也是能量守恒,你日后会为此付出更多。
展开
-
研究试验3 使用内存空间
实验内容 寄存器只有十几个,但是内存空间可以很大。本实验研究C语言里时如何使用内存空间的。 寄存器和内存空间都是存储空间,要使用它们,一般要给出两个信息: a.指明是存储空间所在、是哪个的信息; b.指明存储空间有多大的类型信息。 对于内存空间,要给出地址(准确的说,是内存空间的首地址)和空间存储数据的类型。 向偏移地址为2000h、存储一个字节的内存空间写入字符‘a’: (char转载 2016-05-17 23:19:29 · 518 阅读 · 0 评论 -
王爽《汇编语言》检测点1.1详解
(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位。 (2)1KB的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。 (3)1KB的存储器可以存储 8192(2^13) 个bit, 1024个Byte。 (4)1GB是 1073741824 (2^30) 个Byte、1MB是 1048576(2^20) 个Byte、1KB是 1024(2^10)个Byt转载 2016-06-13 23:33:12 · 2494 阅读 · 0 评论 -
检测点12.1
题目(一):用debug查看内存,情况如下:0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00那3号中断源对应的中断处理程序的入口地址为:__解答:因为一个表项占用两个字节,高地址字单元存放段地址,低地址字单元存放偏移地址。所以3号单元的入口地址是0070:018B题目(二):存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地转载 2016-06-13 23:25:29 · 1915 阅读 · 1 评论 -
王爽《汇编语言》第十一章 实验十一 题目解答
下面是代码:; 要求:将ds:[si]开始,以0结束的字符串中的小写字母变为大写字母显示。 ; 概要算法:小写字母的范围为61~7A,比大写字母多20,所以算法就是判断是否为小写字母,如果为小写字母则减掉20 ; 详细算法: ; 1、结尾字节为0,所以可以使用jcxz来判断整个字符串的结束,这已经是常用手法了。。。 ; 2、对每个字节作判断,一种方法是直接判断(判断 大于61和小于7A),一转载 2016-06-12 23:21:03 · 1073 阅读 · 0 评论 -
王爽《汇编语言》实验7
;王爽汇编语言实验七assume cs:code,ds:data,es:tabledata segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990','1991','1992'db '1993','199转载 2016-06-12 20:46:05 · 14610 阅读 · 4 评论 -
王爽《汇编语言》实验9详解
实验9 根据材料编程 在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串“welcome to masm!”。 材料: 内存地址空间中,B8000H~BFFFFH共32K的空间,为80*25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。 在80*25彩色字符模式下,显示器可以显示25行,每行80个字符,每个字符可以有256种属性(背原创 2016-06-12 17:28:21 · 8491 阅读 · 7 评论 -
汇编语言中 cs, ds,ss 的区别
汇编语言中CS,DS,SS还有一个ES定义如下: CS(Code Segment):代码段寄存器; DS(Data Segment):数据段寄存器; SS(Stack Segment):堆栈段寄存器; ES(Extra Segment):附加段寄存器。 当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将D转载 2016-06-12 10:43:40 · 8856 阅读 · 0 评论 -
王爽 汇编语言第二版 实验9 根据材料编程 代码及分析
通过阅读教材资料我们能获取的信息如下: 1、显示器默认显示的缓冲区是:B8000~B8F9F,低字节放字符,高字节放属性 2、存放字符的地址:第一行:B8000~B809F,第二行:B80A0~B813F 第三行:B8140 ~ B81DF 3、即偶数字节放字符,奇数字节放属性 4、如何显示:只要把字符依次放入缓冲区即可转载 2016-06-12 10:35:45 · 1615 阅读 · 0 评论 -
汇编常见错误
一些常见的错误描述错误编号错误描述0Block nesting error嵌套出错.嵌套的过程,段,结构,宏指令或重复块等非正常结束.例如在嵌套语句中有外层的结束语句,而无内层的结束语局1Extra characters on line一语句行有多余字符,可能是语句中给出的参数太多2Internal error-Register already defined这是一个内部错误.如出现该错误,请记下发转载 2016-06-12 09:41:08 · 5005 阅读 · 0 评论 -
汇编编程:在屏幕的5行12列显示字符串“welcome to masm!”。
assume cs:codedata segment db 'Welcome to masm!','$'data endscode segmentstart: mov ah,2 ;置光标 mov bh,0 ;第0页 mov dh,5 ;dh中放行号 mov dl,12 ;dl中放列号 int 10h mov ax,data转载 2016-06-24 09:03:37 · 2575 阅读 · 0 评论 -
汇编中断大全
汇编中断大全BIOS中断:1、显示服务(Video Service——INT 10H) 00H —设置显示器模式 01H —设置光标形状 02H —设置光标位置 03H —读取光标信息 04H —读取光笔位置 05H —设置显示页 06H、07H —初始化或滚屏 08H —读光标处的字符及其属性 09H —在光标处按指定属性显示字符 0AH —在当前光标处显示字符 0BH —设置转载 2016-06-24 08:59:53 · 6831 阅读 · 0 评论 -
缓冲区溢出
缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。 当一个超长的数据进入到缓冲区时,超出部转载 2016-06-02 08:17:16 · 661 阅读 · 0 评论 -
王爽汇编语言课程设计2
王爽汇编语言 第二版 课程设计2编写一个可以自行启动的计算机,不需要在现有操作系统环境中运行的程序一、相关资料 系统启动初始化完成后最终调用19h,该中断读取软盘的第一扇区或硬盘的第一扇区到0:7c00开始的512个字节的内存空间中,并将cs:ip指向0:7c00执行。更详细参考王爽汇编语言第二版,课程设计2,p.312二、设计思路将安装程序分为三个段,1、第一个段为安装程序,负责将第二个段写入转载 2016-05-18 15:39:36 · 1084 阅读 · 0 评论 -
王爽汇编语言课程设计1
一、实验要求 在屏幕输出实验七中的数据 二、设计思路 1、将实验七的程序编写成一个子过程finishing,在主程序中调用,可以获得实验七种指定格式的table段数据,设置es:bx指向table段中第一行 2、创建一个数据缓存区buffer,设置ds:si指向buffer 3、对于字符串,从table中读取后写入buffer,末尾写入0;对于数值,直接调用实验10中写好的dtoc转换到b转载 2016-05-18 15:04:42 · 863 阅读 · 0 评论 -
对汇编课的认识
1.对在程序中使用多个段的问题的思考 在程序中使用数据,代码和栈有两种方式,第一种是将代码,数据和栈放在一个段中。第二种是将数据,代码和栈分别放到不同的段中。但是我们在使用第一种时,会出现一下问题。首先,程序的一个段中不仅有代码还有数据,这样不够清晰。其次呢,我们在执行程序的时候用debug进行跟踪,会发现我们程序的入口并不是代码,而是数据。这样程序就不能正常运行。解决的方法就是加上伪代码“sta原创 2016-06-16 17:13:52 · 592 阅读 · 0 评论