这个实验比较有趣,光看书写出来的程序总是运行不正确
不断调试后才发现原来是在偏移地址的计算中出现了错误
以下情况是在代码中int 7ch中断例程放在start前讨论的,至于为什么要写在前面,之后说明
table dw sub1, sub2, sub3, sub4
这里面sub1,sub2等等的偏移地址在未安装前是相对于代码段即code而言的
因为编译时程序的偏移地址已经计算好放在table表中,这里JMP指令占3个字节,table占8个字节,所以sub1的偏移地址为000BH,安装后物理地址为0020BH
如果在安装程序时继续将中断向量表设置为0000H:0200H
那么问题出来...
[2013-07-29 13:47] 实验16
阅读全文 |
评论次数(0) |
浏览次数(502) |
所属类型(汇编作业)
[2013-07-28 10:20] 实验15
assume cs:code, ss:stack
stack segment
db 128 dup(0)
stack ends
code segment
start:
mov ax, stack
mov ss, ax
mov sp, 128
push cs
pop ds
mov si, offset int9 ; ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 204H ...
stack segment
db 128 dup(0)
stack ends
code segment
start:
mov ax, stack
mov ss, ax
mov sp, 128
push cs
pop ds
mov si, offset int9 ; ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 204H ...
阅读全文 |
评论次数(0) |
浏览次数(357) |
所属类型(汇编作业)
[2013-07-27 15:59] 实验14
assume cs:code, ds:data
data segment
date_time db '00/00/00 00:00:00', '$' ; 显示时间格式“年/月/日 时:分:秒”
s0 db 9, 8, 7, 4, 2, 0 ; CMOS中时间信息的存放单元
data ends
code segment
start:
mov ax, data
mov ds, ax
mov si, offset s0 ; (ds:si)为CMOS中时间信息存放单元地址
mov...
data segment
date_time db '00/00/00 00:00:00', '$' ; 显示时间格式“年/月/日 时:分:秒”
s0 db 9, 8, 7, 4, 2, 0 ; CMOS中时间信息的存放单元
data ends
code segment
start:
mov ax, data
mov ds, ax
mov si, offset s0 ; (ds:si)为CMOS中时间信息存放单元地址
mov...
阅读全文 |
评论次数(0) |
浏览次数(375) |
所属类型(汇编作业)
[2013-07-27 15:12] 实验13-3
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
row db 2, 4, 6, 8
start:
mov ax, cs
mov ds,...
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
row db 2, 4, 6, 8
start:
mov ax, cs
mov ds,...
阅读全文 |
评论次数(0) |
浏览次数(342) |
所属类型(汇编作业)
[2013-07-27 15:01] 实验13-2
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset lp ; ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 200H ; es:di指向目的地址
mov cx, offset lpend-offset lp ; cx为传输长度
cld ; 传输方向为正
...
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset lp ; ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 200H ; es:di指向目的地址
mov cx, offset lpend-offset lp ; cx为传输长度
cld ; 传输方向为正
...
阅读全文 |
评论次数(0) |
浏览次数(349) |
所属类型(汇编作业)
[2013-07-27 00:20] 实验13-1
assume cs:code, ds:data
data segment
db 'hello world', 0
data ends
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset print ; ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 200H ; es:di指向目的地址
mov cx, offset ...
data segment
db 'hello world', 0
data ends
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset print ; ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 200H ; es:di指向目的地址
mov cx, offset ...
阅读全文 |
评论次数(0) |
浏览次数(368) |
所属类型(汇编作业)
[2013-07-22 12:03] 实验12
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset do0 ; ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 200H ; es:di指向目的地址
mov cx, offset do0end-offset do0 ; 传输长度
cld ; 传输方向为正
rep movsb ; 复制程序
...
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset do0 ; ds:si指向源地址
mov ax, 0
mov es, ax
mov di, 200H ; es:di指向目的地址
mov cx, offset do0end-offset do0 ; 传输长度
cld ; 传输方向为正
rep movsb ; 复制程序
...
阅读全文 |
评论次数(0) |
浏览次数(363) |
所属类型(汇编作业)
[2013-07-20 21:16] 实验11
assume cs:code, ds:data
data segment
db "Beginner's All-purpose Symbolic Instruction Code.", 0
data ends
code segment
start:
mov ax, data
mov ds, ax
mov si, 0 ; 字符串首地址
call letterc ; 转化成大写字母
mov ax, 4c00H
int 21H
; 子程序letterc, 将小写字母转化成大写...
data segment
db "Beginner's All-purpose Symbolic Instruction Code.", 0
data ends
code segment
start:
mov ax, data
mov ds, ax
mov si, 0 ; 字符串首地址
call letterc ; 转化成大写字母
mov ax, 4c00H
int 21H
; 子程序letterc, 将小写字母转化成大写...
阅读全文 |
评论次数(0) |
浏览次数(327) |
所属类型(汇编作业)
[2013-07-20 21:15] 课程设计1
assume cs:codesg, ds:data, es:data2
data segment
db 32 dup(20H)
data ends
data2 segment
; 年份
db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982'
db '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990'
db '1991', '1992', '1993', '1994', '1995'
...
data segment
db 32 dup(20H)
data ends
data2 segment
; 年份
db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982'
db '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990'
db '1991', '1992', '1993', '1994', '1995'
...
阅读全文 |
评论次数(0) |
浏览次数(370) |
所属类型(汇编作业)
[2013-07-20 21:14] 实验10-3
assume cs:code, ds:data
data segment
db 10 dup(0)
dw 123, 12666, 1, 8, 3, 38
data ends
code segment
start:
mov ax, data
mov ds, ax
mov si, 0 ; 字符串的首地址
mov bx, 0aH ; 待转换数据的首地址
mov di, 0 ; 待转换数据的相对bx偏移地址
mov cx, 6 ; 6个待显示数据
mov dh, 4 ; ...
data segment
db 10 dup(0)
dw 123, 12666, 1, 8, 3, 38
data ends
code segment
start:
mov ax, data
mov ds, ax
mov si, 0 ; 字符串的首地址
mov bx, 0aH ; 待转换数据的首地址
mov di, 0 ; 待转换数据的相对bx偏移地址
mov cx, 6 ; 6个待显示数据
mov dh, 4 ; ...
阅读全文 |
评论次数(0) |
浏览次数(392) |
所属类型(汇编作业)
『 查看更多文章 』