下面是:简版课设2、新版课设2 、原版课设2。
一、简版课设2
本程序极简,仅88行,无操作提示、清屏和检错,用户须“正确地”输入。主界面选项可键入1~4。键入3或4,均进入时钟界面,按Esc键返回。在时钟界面,按F1键变色实现功能3;按“→”键转到功能4 —— 可移动黑色光斑至“正确”位置键入,无须保存。
assume cs:code ;简版课设2 输入正确性由用户维护
code segment
mov bx,offset MyData ;共275b写入软盘
mov ax,cs ...
- [游客] 为啥简版的int 13h之后不用 jmp 也行。 08/31 00:14
- [hky987654321] 是的,按压F1的次数 >=15 ,有“按下“→”键会出现光斑落在年份的百位数上”的现象。 这与缓冲 08/09 11:12
- [游客] 为什么多次按F1后,按下“→”键会出现光斑落在年份的百位数上? 08/02 21:42
- [游客] 懂了。 07/30 10:54
- [hky987654321] -1就是FFh。用-1兼济了ffff:0和简洁的数据分隔这二者的需要。 [bp-2],是因为刚进入 07/29 11:43
- [游客] 也看不懂[bp-2] 07/12 10:49
- [游客] 不懂-1 07/09 17:55
- [游客] 16位现在只有教学意义,看一眼就好。 04/13 00:46
- [游客] 没搞错吧,课程2才351b 03/09 18:01
- [游客] 没想到实验14只用13条代码! 03/02 15:46
[2013-11-13 17:09] 提交课设2作业
阅读全文 |
评论次数(9) |
浏览次数(1262) |
所属类型(汇编作业)
[2013-09-22 11:17] 第17章 移动光标
;程序名称:p17_3
;任务:为设置时钟而移动光标;按下“→”键光标右移,按下“←”键光标左移
assume cs:code
data segment
db '2000/00/00 00:00:00','$',16,0 ;置16和0,作为16位乘数的低8位与高8位
db 9,0,0,8,0,0,7,0,0,4,0,0,2,0,0,0,0,0,'!' ;置0使相乘后(dx)=0成立
data ends
code segment
start: mov ax,data
mov ds,ax
sub bx,b...
;任务:为设置时钟而移动光标;按下“→”键光标右移,按下“←”键光标左移
assume cs:code
data segment
db '2000/00/00 00:00:00','$',16,0 ;置16和0,作为16位乘数的低8位与高8位
db 9,0,0,8,0,0,7,0,0,4,0,0,2,0,0,0,0,0,'!' ;置0使相乘后(dx)=0成立
data ends
code segment
start: mov ax,data
mov ds,ax
sub bx,b...
阅读全文 |
评论次数(0) |
浏览次数(612) |
所属类型(汇编作业)
[2013-09-19 21:43] 第17章 字符栈
;程序名称:Char_pro
;任务:完成字符串的输入、删除和显示
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ds,ax
mov si,0 ;设置ds:si指向栈空间
call getstr
mov ax,4c00h
int 21h
;- - - - - - - - - - - - - - - - - - -
;getstr子程序
;任...
;任务:完成字符串的输入、删除和显示
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ds,ax
mov si,0 ;设置ds:si指向栈空间
call getstr
mov ax,4c00h
int 21h
;- - - - - - - - - - - - - - - - - - -
;getstr子程序
;任...
阅读全文 |
评论次数(0) |
浏览次数(562) |
所属类型(汇编作业)
[2013-09-11 16:00] 实验16
;程序名称:p16
;任务:安装一个新的int 7ch中断例程,为显示输出提供的子程序功能为,
; (1)清屏;(2)设置前景色;(3)设置背景色;(4)向上滚动一行
;参数:(ah)=功能号,0表示清屏,1表示设置前景色,2表示设置背景色,
;3表示向上滚动一行;对于2、3号功能,用al传送颜色值,
;(al)∈{0,1,2,3,4,5,6,7}
assume cs:code
code segment
start:
call Install_7ch ;安装新编int 7ch
mov ax,0 ;下面代码为手动...
;任务:安装一个新的int 7ch中断例程,为显示输出提供的子程序功能为,
; (1)清屏;(2)设置前景色;(3)设置背景色;(4)向上滚动一行
;参数:(ah)=功能号,0表示清屏,1表示设置前景色,2表示设置背景色,
;3表示向上滚动一行;对于2、3号功能,用al传送颜色值,
;(al)∈{0,1,2,3,4,5,6,7}
assume cs:code
code segment
start:
call Install_7ch ;安装新编int 7ch
mov ax,0 ;下面代码为手动...
阅读全文 |
评论次数(0) |
浏览次数(576) |
所属类型(汇编作业)
[2013-09-07 22:07] 实验15
;程序名称:p15
;任务:安装一个新的int 9中断例程,在DOS下,按下"A"键后,除非不再松开,如果松开,就显示满屏幕的"A",其它键照常处理。
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128 ;设置栈段
push cs
pop ds ;源的段地址
m...
;任务:安装一个新的int 9中断例程,在DOS下,按下"A"键后,除非不再松开,如果松开,就显示满屏幕的"A",其它键照常处理。
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128 ;设置栈段
push cs
pop ds ;源的段地址
m...
阅读全文 |
评论次数(0) |
浏览次数(626) |
所属类型(汇编作业)
[2013-09-02 17:17] 实验14
任务:以“年/月/日 时:分:秒”的格式,显示当前的日期、时间
程序1为作业原版,程序2~8为追求最简过程中的改进系列。收集在一起后,整个系列脉络清晰,代码从22条简至13条,但增大的数据段,却有点另类和怪怪的感觉。
问题:1、再减代码的思路? 2、简至只剩数据段会如何?回归机器语言?
- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -
assume cs:code ;程序1 代码22条(54字节)
data segment
db '2090/80/70 40:20:...
程序1为作业原版,程序2~8为追求最简过程中的改进系列。收集在一起后,整个系列脉络清晰,代码从22条简至13条,但增大的数据段,却有点另类和怪怪的感觉。
问题:1、再减代码的思路? 2、简至只剩数据段会如何?回归机器语言?
- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -
assume cs:code ;程序1 代码22条(54字节)
data segment
db '2090/80/70 40:20:...
阅读全文 |
评论次数(1) |
浏览次数(856) |
所属类型(汇编作业)
[2013-08-31 09:45] 检测点14.2
;程序名称:shl_ax
;任务:用加法和移位指令计算(ax)=(ax)*10
;解题思路:分解(ax)*10=(ax)*5*2,即5个(ax)相加后再移位
;返回:(dx)=计算结果的高16位
; (ax)=计算结果的低16位
方法一
assume cs:code
code segment
mov ax,0ffffh ;为ax赋值
sub dx,dx
mov cx,4
s: add ax,0ffffh ;进行5个(ax)相加
adc dx,0 ;取出CF
loop s
shl dx,1
s...
;任务:用加法和移位指令计算(ax)=(ax)*10
;解题思路:分解(ax)*10=(ax)*5*2,即5个(ax)相加后再移位
;返回:(dx)=计算结果的高16位
; (ax)=计算结果的低16位
方法一
assume cs:code
code segment
mov ax,0ffffh ;为ax赋值
sub dx,dx
mov cx,4
s: add ax,0ffffh ;进行5个(ax)相加
adc dx,0 ;取出CF
loop s
shl dx,1
s...
阅读全文 |
评论次数(0) |
浏览次数(646) |
所属类型(汇编作业)
[2013-08-25 11:51] 作业设计1
;文件名:pdesign1
;任务:将data中数据,按“年份、年收入、雇员人数”及“人均收入”在屏幕上逐行显示
assume cs:code
data 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,2390,8000,1600...
;任务:将data中数据,按“年份、年收入、雇员人数”及“人均收入”在屏幕上逐行显示
assume cs:code
data 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,2390,8000,1600...
阅读全文 |
评论次数(0) |
浏览次数(784) |
所属类型(汇编作业)
[2013-08-09 11:24] 检测点10.5(1)和(2)完成后想到的
通过完成检测点10.5的两个题,可以认为:
(1)内存并没有划段,栈段仍然是内存单元
看似特殊的栈段,不仅可执行其特殊的入栈、出栈操作,也可执行一般内存的字单元操作。在debug中,用d ss:0 f,不断跟踪检测点10.5(2),就可以体察到,当mov word ptr ss:[0],offset s 、mov ss:[2],cs等代码执行后,栈段也有一般内存单元的属性。
(2)通过设置栈段等数据段一定位置上的数值,可以为代码设计执行路线图
例如本检测点的两道题,分别对栈底前两个和前四个单元进行call的指向操作,结果导致代码按指定方向执行。又如,前章的实验9...
(1)内存并没有划段,栈段仍然是内存单元
看似特殊的栈段,不仅可执行其特殊的入栈、出栈操作,也可执行一般内存的字单元操作。在debug中,用d ss:0 f,不断跟踪检测点10.5(2),就可以体察到,当mov word ptr ss:[0],offset s 、mov ss:[2],cs等代码执行后,栈段也有一般内存单元的属性。
(2)通过设置栈段等数据段一定位置上的数值,可以为代码设计执行路线图
例如本检测点的两道题,分别对栈底前两个和前四个单元进行call的指向操作,结果导致代码按指定方向执行。又如,前章的实验9...
阅读全文 |
评论次数(0) |
浏览次数(295) |
所属类型(汇编作业)
[2013-08-07 21:09] 实验7 期中考
codesg segment
start:mov ax,data
mov ds,ax
mov ax,table
mov es,ax
sub bp,bp
sub di,di
sub si...
start:mov ax,data
mov ds,ax
mov ax,table
mov es,ax
sub bp,bp
sub di,di
sub si...
阅读全文 |
评论次数(0) |
浏览次数(279) |
所属类型(汇编作业)