![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编语言 王爽
ChenyangDu
这个作者很懒,什么都没留下…
展开
-
王爽 汇编语言 第十五章 实验十五 安装新的int9中断例程
其实把课本上15.5的程序稍微修改一下就OK了assume cs:codestack segment db 128 dup(0)stack endscode segmentstart: mov ax,stack mov ss,ax mov sp,128 push cs pop ds ;令ds = cs mov ax,0 mov es,ax ;令es = 0 mov si,offset int9 mov di, 204h mov cx,offset int9e原创 2020-08-30 20:26:22 · 1046 阅读 · 0 评论 -
王爽 汇编语言 第十四章 实验十四 访问CMOS RAM
很简单啦,就把书上给的复制几遍改一改就好了assume cs:codecode segmentstart: ;年份 mov al,9 out 70h,al in al,71h mov ah,al mov cl,4 shr ah,cl and al,00001111b add ah,30h add al,30h mov bx,0b800h mov es,bx mov byte ptr es:[160*12+30*2],ah mov byte ptr es:[1原创 2020-08-29 12:04:16 · 971 阅读 · 0 评论 -
王爽 汇编语言 第十三章 实验十三
1、首先是文件1.asmassume cs:codedata segment db "Welcome to masm!", 0data endscode segmentstart: mov dh, 10 mov dl, 10 mov cl, 2 mov ax, data mov ds, ax mov si, 0 int 7ch mov ax, 4c00h int 21h code endsend start然后是2.asmassume原创 2020-08-28 22:25:26 · 1406 阅读 · 1 评论 -
王爽 汇编语言 第十二章 实验十二
编写程序如下: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,do0end-do0 cld rep movsb mov ax,0 mov es,ax mov word ptr es:[0],200h mov word ptr es:[2],0 mov ax,4c00h int 21原创 2020-07-28 12:56:49 · 1481 阅读 · 0 评论 -
王爽 汇编语言 第十一章 实验十一
assume cs:codesgdatasg segment; db "Beginner's All-purpose Symbolic Instruction Code.",0datasg endscodesg segment begin: mov ax,datasg mov ds,ax mov si,0 call letterc mov ax,4c00h int 21h letterc: push si push ax push bx push cx s:原创 2020-07-26 19:03:52 · 1675 阅读 · 0 评论 -
王爽 汇编语言 第十章 实验十
1、显示字符串assume cs:code data segment db 'Welcome to masm!',0data endscode segment start: mov dh,8 mov dl,3 mov cl,2 mov ax,data mov ds,ax mov si,0 call show_str mov ax,4c00h int 21hshow_str: push ax push bx push cx push dx push si原创 2020-07-25 11:00:38 · 2796 阅读 · 4 评论 -
王爽 汇编语言 第九章 实验九
别从第一行(B800H)开始写入,会被推上去assume cs:codesg,ss:stackdata segment db 'welcome to masm!' db 00000010b,00100100b,00010111bdata endsstack segment db 16 dup(0)stack endscodesg segmentstart: mov ax,16 mov sp,ax mov ax,0b860h mov ds,ax mov ax,data mov原创 2020-07-24 16:58:01 · 2867 阅读 · 2 评论 -
王爽 汇编语言 第九章 实验八
输入程序assume cs:codesgcodesg segment mov ax,4c00h int 21hstart: mov ax,0s: nop nop mov di,offset s mov si,offset s2 mov ax,cs:[si] mov cs:[di],axs0: jmp short ss1: mov ax,0原创 2020-07-24 15:24:55 · 2362 阅读 · 4 评论 -
王爽 汇编语言 第八章 实验七
assume cs:codedata segment ;年份 db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982', '1983' db '1984', '1985', '1986', '1987', '1988', '1989', '1990', '1991', '1992' db '1993', '1994', '1995' ;收入 dd 16, 22, 382, 1356,原创 2020-07-22 22:16:06 · 4249 阅读 · 5 评论 -
王爽 汇编语言 第七章 实验六
将datasg段中每个单词的前4个字母改成大写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. replace ' db '4. modify 'datasg endscodesg segmentstart: mov原创 2020-07-20 11:52:18 · 2694 阅读 · 3 评论 -
王爽 汇编语言 第六章 实验五
(1)输入以下程序assume cs:code,ds:data,ss:stackdata segment dw 0123h,0456h,0789h,0abch,0defh,0cbah,0987hdata endsstack segment dw 0,0,0,0,0,0,0,0stack endscode segment start: mov ax,stack mov ss,ax mov sp,16 mov ax,data mov ds,ax pus原创 2020-07-19 21:41:27 · 6139 阅读 · 18 评论 -
DEBUG里面的T P G命令
DEBUG 中的T、P、G都是用来执行代码的,但是用法有所不同,今天在网上看到有人对这几个命令的讲解,觉得容易理解多了,这里记录一下:T命令单步执行,每次只执行一条代码语句,遇到子程序后进入子程序逐条执行代码,可以理解为step intoP命令类似T命令,不过遇到子程序调用的时候直接执行完子程序代码,不会进入子程序逐条执行,可以理解为step over。另外,在遇到循环指令时,会直接执行到CX=0。G命令该命令后面可以跟地址和断点,即格式为 g [=address] [breakp转载 2020-07-16 22:10:22 · 1509 阅读 · 0 评论 -
王爽 汇编语言 第五章 实验四
(1)(2)编程如下:assume cs:codesgcodesg segment mov ax,20H mov ds,ax mov bx,0 mov cx,40H s: mov ds:[bx],bx inc bx loop s mov ax,4c00H int 21Hcodesg endsend执行之后查看修改成功(3)先观察loop中的内容,是将ds中的数据拷贝到es中,因此,ds应该为程序开始部分,所以第一空为code,cx是程序的长度,我们不妨先设原创 2020-07-11 12:51:57 · 5420 阅读 · 8 评论 -
王爽 汇编语言 第四章 实验三
(1)(以下a-d步骤也可以在文件夹里面用记事本完成)a) 首先进入editb) 按提示输入文件名称c)然后输入就行了(吐槽一下,这个页面比vim友好多了)d)然后根据F1里面的提示,按F3+E,保存并退出e)编译(可以直接用masm t1;代替)f)连接(可以直接用link t1;代替)(2)进入debug之后一直按tassume cs:codesgcodesg segment mov ax,2000H;ax=2000H mov ss,ax ;ss=2000H原创 2020-07-11 11:56:27 · 5196 阅读 · 4 评论 -
王爽 汇编语言 第三章 实验二
(1)先用a命令写入程序然后一直输T,就可以看到原创 2020-07-10 22:51:54 · 5805 阅读 · 1 评论 -
王爽 汇编语言 实验全部答案
实验一实验二(未完持续,正在写ing)原创 2020-07-10 21:58:54 · 23819 阅读 · 2 评论 -
王爽 汇编语言 第二章 实验一
进入debug之后,输入a,然后输入代码即可。注意: 在debug模式下,默认所有数字都是16进制,不能加H,否则报错。但是在asm文件里面,默认数字是10进制的,需要加H输入结束,连续两次回车即可然后使用R命令调整一下 CS和IP为代码开始的位置,也就是073F和0100然后疯狂输入T就行了-A命令输入代码调整CS和IP连续按T+回车,直至出现AX=0100使用D命令查看可以看到在最后一行FFFF0处,92年1月1日,如果通过E命令修改,是无效的。因为这里属于ROM部分.原创 2020-07-07 18:18:05 · 6055 阅读 · 4 评论