汇编语言
w告别的年代
这个作者很懒,什么都没留下…
展开
-
汇编语言学习(开篇)
本人今天开始学习王爽老师著的《汇编语言》,为督促自己踏实学习,将每节课后检测点的练习都发到博客上来,一节不漏。本人汇编0基础,一切从头开始。原创 2014-01-05 13:39:16 · 359 阅读 · 0 评论 -
实验12
assume cs:codecode segmentstart: mov ax , cs mov ds , ax mov si , offset do0 mov ax , 0 mov es , ax mov di , 200h mov cx , offset do0end-off原创 2014-01-27 12:59:36 · 408 阅读 · 0 评论 -
实验11
assume cs:codesgdatasg segment db "Beginner's All-purpose Symbolic Instruction Code.",0datasg endscodesg segment begin: mov ax , datasg mo原创 2014-01-27 00:19:03 · 496 阅读 · 0 评论 -
检测点9.1
(1) assume cs:codedata segment dw 0,0data endscode segment start : mov ax , data mov ds , ax mov bx , 0 jmp word p原创 2014-01-18 10:52:00 · 584 阅读 · 0 评论 -
检测点9.2
assume cs:codecode segment start: mov ax , 2000h mov ds , ax mov bx , 0 s: mov cl , [bx] //用【bx】处内存的值直接赋值给cx寄存器,注意不能将cl写成cx,因为原创 2014-01-18 11:11:24 · 583 阅读 · 0 评论 -
检测点9.3
assume cs:codecode segment start: mov ax , 2000h mov ds , ax mov bx , 0 s: mov cl , [bx] mov ch , 0 inc cx //此处要将cx加1是因为loop指令会先将c原创 2014-01-18 11:23:42 · 753 阅读 · 0 评论 -
第九章实验9
assume cs:codesg,es:datasg,ss:stacksgdatasg segment db 'welcome to masm!' //要显示的字符串,共16个byte db 11000010B //第一种字体属性,红底闪烁绿字 db 00原创 2014-01-18 15:29:17 · 413 阅读 · 0 评论 -
检测点13.1
(1) 安装自己编写的7ch中断程序(myjumpn.asm),即将功能处理程序拷贝到内存 0:200h处,并将中断向量表的7ch项做相应的设置(段地址,偏移地址) assume cs:codecode segment start: mov ax , cs mov ds , ax mov si ,原创 2014-01-28 11:54:11 · 596 阅读 · 0 评论 -
实验13.1
(1) 编写,并安装myshow程序assume cs:codecode segment start: mov ax , cs mov ds , ax mov si , offset myshow mov ax , 0 mov es , ax mov di , 200h原创 2014-01-28 14:18:52 · 394 阅读 · 0 评论 -
实验13.2
(2)编写,编译,并运行myloop.exeassume cs:codecode segment start: mov ax , cs mov ds , ax mov si , offset myloop mov ax , 0 mov es , ax mov di , 200h原创 2014-01-28 14:37:54 · 394 阅读 · 0 评论 -
实验14
编程,以“年/月/日 时:分:秒”的格式,显示从cmos ram中读取的时间:assume cs:code , ds:datadata segment db 32 dup(0) //开辟32个字节的空间来存放最终要显示的字符串,实际用到了17字节。初始化为0data endscode segment start:原创 2014-01-28 17:10:42 · 417 阅读 · 0 评论 -
检测点10.1-10.5
10.1 mov ax , 0 mov ax, 1000h10.2 ax = 610.3 ax = 1010H10.4 ax = BH10.5 (1) ax = 310.5 (2) ax = 1 , bx = 0原创 2014-01-18 22:43:17 · 608 阅读 · 0 评论 -
实验15
安装一个新的int9 中断例程,功能:在DOS下,按下A键后,除非不松开,如果松开,就显示满屏幕的"A"(1)自行编写的int9中断例程: assume cs:codestack segment //自定义栈段,其实也可以不需要 db 128 dup (0)stack endscode se原创 2014-01-29 00:01:47 · 521 阅读 · 0 评论 -
实验16
assume cs:code code segmentstart: mov ax , 0 mov es , ax mov word ptr es:[7ch*4] , offset setscreen //不复制程序,只是将中断向量表中7ch号中断的地址改为我的处理程序的地址,即setscre原创 2014-01-29 10:54:30 · 444 阅读 · 0 评论 -
第9章实验8
assume cs:codesgcodesg segment mov ax,4c00h // ip=0 int 21h start: mov ax , 0 // ip=5 s: nop原创 2014-01-18 14:17:24 · 416 阅读 · 0 评论 -
第八章实验7
assume cs:codesg,ss:stacksgdata segment db '1975','1976','1977','1978','1979' db '1980','1981','1982','1983','1984' db '1985','1986','1987','1988','1989' db '1990','1原创 2014-01-17 23:56:45 · 403 阅读 · 0 评论 -
检测点1.1
(1) 1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13(2) 1KB的存储器有 1024 个存储单元 。 存储单元的编号从 0 到 1023(3) 1KB的存储器可以存储 1024×8 个bit, 1024 个Byte(4) 1GB , 1MB, 1KB 分别是 1024x1024x1024 Byte, 1024x1024 Byte, 1024Byte(5) 8080原创 2014-01-05 13:52:03 · 437 阅读 · 0 评论 -
检测点2.1
(1) 写出每条汇编指令执行后相关寄存器中的值 mov ax , 62627 AX = F4A3H mov ah , 31H AX = 31A3H mov al , 23H AX = 3123H add原创 2014-01-05 14:38:24 · 368 阅读 · 0 评论 -
检测点2.3
下面的3条指令执行后,CPU几次修改IP? 都是什么时候?最后IP中的值是多少? mov ax , bx (根据CS:IP 读取指令,IP+, 执行指令 mov) sub ax , ax (根据CS:IP 读取指令,IP+, 执行指令 sub,执行后ax寄存器中的值为0) jmp ax原创 2014-01-05 16:42:34 · 443 阅读 · 0 评论 -
检测点2.2
(1) 给定段地址为 0001H , 仅通过变化偏移地址寻址,CPU的寻址范围为 00010H ----- 1000FH(2) 有一数据存放在内存 20000H 单元中,现给定段地址为 SA , 若想用偏移地址寻到此单位,则 SA 满足的条件是: 最小为:1001H , 最大为:2000H原创 2014-01-05 15:08:49 · 411 阅读 · 0 评论 -
检测点3.2
(1) 将内存空间2000:0000-2000:000F看作栈,初始时候栈空,初始栈指针指向内存单元2000:0010,通过push指令将数据压入栈中 mov ax, 1000H mov ds, ax mov ax , 2000H mov ss, ax mov sp, 10H pus原创 2014-01-09 23:16:14 · 445 阅读 · 0 评论 -
检测点3.1
(1)在Debug中,用"d 0:0 1f“ 查看内存,结果如下:0000:0000 70 80 F0 30 EF 60 30 E2- 00 80 80 12 66 20 22 600000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88下面的程序执行前, AX原创 2014-01-09 23:02:55 · 580 阅读 · 0 评论 -
第5章实验4
(1)向内存0:200 -- 0:23F 依次传送数据0--63(3FH)assume cs:codecode segment mov ax , 0020H mov ds , ax mov bx , 0 mov cx , 40H s: mov [bx] , bx inc bx原创 2014-01-14 00:13:42 · 343 阅读 · 0 评论 -
第六章实验五
(5)assume cs:codea segment db 1,2,3,4,5,6,7,8a endsb segment db 1,2,3,4,5,6,7,8b endsc segment db 0,0,0,0,0,0,0,0c endscode segmentstart :原创 2014-01-15 00:43:35 · 355 阅读 · 0 评论 -
第七章问题7.9
assume cs:codesg,ss:stacksg,ds:datasgstacksg segment dw 0, 0, 0, 0, 0, 0, 0, 0stacksg endsdatasg segment db '1. display ' db '2. brows ' db '3原创 2014-01-15 21:57:48 · 432 阅读 · 0 评论 -
第十章实验10.2
本实验要实现32位除法结果不溢出(被除数32位,除数16位)assume cs:codecode segmentstart : mov ax , 4240H //参数1:被除数的低16位,放入ax mov dx , 000FH原创 2014-01-25 11:28:41 · 416 阅读 · 0 评论 -
第10章课程设计1
assume cs:codesgdata segment db '1975','1976','1977','1978','1979' db '1980','1981','1982','1983','1984' db '1985','1986','1987','1988','1989' db '1990','1991','1992'原创 2014-01-25 23:51:22 · 416 阅读 · 0 评论 -
第十章实验10.3
本实验要将十进制数字,以ASCII码的形式显示到屏幕上assume cs:codedata segment db 10 dup (0) //存放要写到屏幕上的数字的内存段data endscode segment start: mov ax原创 2014-01-25 15:17:42 · 443 阅读 · 0 评论 -
第十章实验10.1
assume cs:codedata segment db 'Welcome to masm!',0 //要显示的字符串,以0结尾,属于"C风格字符串“,这样就不用保存字符串的长度data endscode segmentstart: mov dh, 8原创 2014-01-25 10:16:34 · 487 阅读 · 0 评论 -
实验13.3
assume cs:codecode segments1: db 'Good , better , best ,', '$' s2: db 'Never let it rest ,', '$' s3: db 'Till good is better ,' , '$' s4: db 'And better , best.', '$'s: dw offset s1 ,原创 2014-01-28 15:24:55 · 430 阅读 · 0 评论