检测点6.1
2, 下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,数据的传送用栈来进行,栈空间设置在程序内。完成程序:
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0
start:
mov ax,cs ;cs为所填第一空
mov ss,ax
mov sp,18h ;此条指令为所填第二空
mov ax,0
mov ds,ax
...


- [游客] 博主你好,我是一名汇编初学者,麻烦把全套资料发给我,谢谢 10/04 18:27
- [xtp1256065080] 1256065080@qq.com 博主,我刚刚接触汇编,可以把全套资料发给我么,谢谢 09/29 12:14
- [游客] luobosang@163.com 博主,我也想学好汇编,麻烦把整套资料发给我,谢谢! 06/13 11:56
- [piaoyi406] 楼主谢谢了,792619575@qq.com 05/06 23:36
- [mingfeng] (1)《嵌入式软件基础——C语言与汇编的融合:翻译版》 【美】刘易斯(Lewis, D.W)著 ( 05/05 17:28
- [游客] (1)《MASM 6.11 汇编语言应用》 蔡友家 著 这本老书,真的很难找 (2)《保 01/20 17:55
- [游客] 好像略懂了! 谢谢 如果这学期早点发现你这些文章,会对自己学习汇编语言有很大的帮助! 12/21 15:25
- [1197257321] 我现在也在学王爽老师的《汇编语言》,想看看你在学汇编时的辅助教材 《汇编语言》,谢了。1197257 11/25 18:47
- [tianyuanwu] 我也想要,可以全部发给我吗,谢谢LZ,我的邮箱是 397225220@qq.com 11/25 12:49
- [游客] ·《嵌入式软件基础——C语言与汇编的融合:翻译版》 和王爽《汇编语言》课后习题答案及实验解答·谢谢 10/31 21:25
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读 01/11 20:31
[2008-06-23 21:08] 检测点6.1(第二版)
阅读全文 |
评论次数(4) |
浏览次数(1371) |
所属类型(汇编作业)
[2008-06-23 18:49] 实验4 [bx]和loop的使用(第二版)
实验4 [bx]和loop的使用
3,下面得程序的功能是将“mov ax, 4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code
code segment
mov ax, cs ;cs为所填写的数据
mov ds, ax
mov ax, 0020h
mov es, ax
mov bx, 0
mov cx, cx ;cx为所填写的数据,此语句可不写
s:
mov al, [bx]
mov es:[bx], al
inc bx
...
3,下面得程序的功能是将“mov ax, 4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code
code segment
mov ax, cs ;cs为所填写的数据
mov ds, ax
mov ax, 0020h
mov es, ax
mov bx, 0
mov cx, cx ;cx为所填写的数据,此语句可不写
s:
mov al, [bx]
mov es:[bx], al
inc bx
...
阅读全文 |
评论次数(4) |
浏览次数(663) |
所属类型(汇编作业)
[2008-06-21 12:12] 实验3 编程,编译,连接,跟踪(第二版)
实验3 编程,编译,连接,跟踪
(1)将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe
assume cs:codesg
codesg segment
mov ax, 2000h
mov ss, ax
mov sp, 6 ;此处做了修改:原代码为mov sp, 0
add sp, 4
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21...
(1)将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe
assume cs:codesg
codesg segment
mov ax, 2000h
mov ss, ax
mov sp, 6 ;此处做了修改:原代码为mov sp, 0
add sp, 4
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21...
阅读全文 |
评论次数(1) |
浏览次数(609) |
所属类型(汇编作业)
[2007-12-27 11:38] 实验13 编写、应用中断例程(3)
3,下面的程序,分别在屏幕的第2、4、6、8行显示四句英文诗,补全程序。
完整程序如下:
assume cs:code
code segment
s1: 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, offset s2, offset s3, offset s4
ro...
完整程序如下:
assume cs:code
code segment
s1: 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, offset s2, offset s3, offset s4
ro...
阅读全文 |
评论次数(1) |
浏览次数(584) |
所属类型(汇编作业)
[2007-12-27 10:35] 实验13 编写、应用中断例程(2)
2,编写并安装int 7ch中断例程,功能为完成loop指令的功能。
参数:(cx)=循环次数,(bx)=位移
assume cs:code
code segment
start:
;安装程序
mov ax, cs
mov ds, ax
mov si, offset MyLoop
mov ax, 0
mov es, ax
mov di, 200h
mov cx, offset EndMyLoop - offset MyLoop
CLD
re...
参数:(cx)=循环次数,(bx)=位移
assume cs:code
code segment
start:
;安装程序
mov ax, cs
mov ds, ax
mov si, offset MyLoop
mov ax, 0
mov es, ax
mov di, 200h
mov cx, offset EndMyLoop - offset MyLoop
CLD
re...
阅读全文 |
评论次数(1) |
浏览次数(661) |
所属类型(汇编作业)
[2007-12-27 10:16] 实验13 编写、应用中断例程(1)
实验13 编写、应用中断例程
1,编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址。
代码如下:
assume cs:code
data segment
db "welcome to masm!",0
data ends
code segment
start:
;安装程序
mov ax, cs
mov ds, ax
mov si, offset ShowStr
...
1,编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址。
代码如下:
assume cs:code
data segment
db "welcome to masm!",0
data ends
code segment
start:
;安装程序
mov ax, cs
mov ds, ax
mov si, offset ShowStr
...
阅读全文 |
评论次数(1) |
浏览次数(562) |
所属类型(汇编作业)
[2007-12-27 10:14] 检测点13.2
检测点13.2
判断下面说法的正误:
(1) 我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。
答:这种说法是错误的。因为该内存单元具有‘只读’属性。
(2) int 19h中断例程,可以由DOS提供。
答:这种说法是错误的。因为int 19h是在DOS启动之前就被执行的中断例程,这里面涉及到一个先后次序的问题,而此次序不能被打乱。...
判断下面说法的正误:
(1) 我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。
答:这种说法是错误的。因为该内存单元具有‘只读’属性。
(2) int 19h中断例程,可以由DOS提供。
答:这种说法是错误的。因为int 19h是在DOS启动之前就被执行的中断例程,这里面涉及到一个先后次序的问题,而此次序不能被打乱。...
阅读全文 |
评论次数(1) |
浏览次数(688) |
所属类型(汇编作业)
[2007-12-26 15:09] 检测点13.1
检测点13.1
1, 上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
答:所能进行的最大转移位移是128[指向前转移]。
原因:loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。对IP的修改范围都为:-128~127。
2, 用7ch中断例程完成jmp near ptr S指令的功能,用bx向中断例程传送转移位移。
应用举例:在屏幕的第12行显示data段中,以0结尾的字符串。
说明:这道题目没有新的东西,NEARJMP可以模仿教材中“用7ch中断例程完成loop指令...
1, 上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
答:所能进行的最大转移位移是128[指向前转移]。
原因:loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。对IP的修改范围都为:-128~127。
2, 用7ch中断例程完成jmp near ptr S指令的功能,用bx向中断例程传送转移位移。
应用举例:在屏幕的第12行显示data段中,以0结尾的字符串。
说明:这道题目没有新的东西,NEARJMP可以模仿教材中“用7ch中断例程完成loop指令...
阅读全文 |
评论次数(2) |
浏览次数(538) |
所属类型(汇编作业)
[2007-12-25 15:25]
实验12 编写0号中断的处理程序(改进版2)
前面Wednesday指出了我第一个程序的不合理之处,我虚心接受并改进了。其实变化的地方不多,就是把
EndDoZeroOver:
nop
指令移到了后面,同时把call far ptr ShowStr改为 call ShowStr。
代码如下:
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset DoZeroOver ;设置ds:si指向源地址
mov ax, 0
mov es, ax
...
EndDoZeroOver:
nop
指令移到了后面,同时把call far ptr ShowStr改为 call ShowStr。
代码如下:
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset DoZeroOver ;设置ds:si指向源地址
mov ax, 0
mov es, ax
...
阅读全文 |
评论次数(2) |
浏览次数(845) |
所属类型(汇编作业)
[2007-12-25 15:20] 实验12 编写0号中断的处理程序(改进版1)
前面我偷懒,没有重新写屏幕输出指令,这里重新写一个。
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset DoZeroOver ;设置ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 200h ;设置es:di指向目的地址
;设置cx为传输长度
mov cx, offset EndDoZeroOver - offset...
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset DoZeroOver ;设置ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 200h ;设置es:di指向目的地址
;设置cx为传输长度
mov cx, offset EndDoZeroOver - offset...
阅读全文 |
评论次数(1) |
浏览次数(552) |
所属类型(汇编作业)