今天完成实验11,比课程设计1要简单。
很高兴有同学阅读我的代码。
;子程序 letterc
;饮食任意字符,以0结尾的字符串中的小写字母转变成大写字母
; 参数:ds:si指向字符串首地址
; 关于英文字符大小写的提醒
; 小写字母的ASCII码,比大写字母的ASCII码大20h。 --参见第7章内容
assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
stack segment
db 20 dup(0...


- [crazyman] 我个人觉得对我的目标关系不大,所以就不再继续了;也许在手头的目标完成后,想尝试驱动代码的编写,可能会 02/16 17:34
- [martian] 完成课设1后,又是一个新起点,博主的代码挺漂亮! 12/26 20:09
- [younggay] 向前进,向前进.... 12/24 10:57
- [jcw2008] 恭喜! 12/23 18:37
- [tomato] 不错不错,想必博主是提高了不少,祝贺!继续加油! 12/23 16:30
- [jcw2008] 期待博主课设一的完成。 12/21 20:02
- [problemqd] 多谢提醒和关注。不过,10.3如果用到32位除法时,就要用到10.2的成果了(无溢出除法运算)。至于 12/18 22:50
- [游客] 嗯。已经能够正确显示12666这个处理方式了。但是,有个缺点,就是当数据大于 000A 0000H这 12/18 21:48
- [martian] 写程序,一定要逻辑清晰,即使出现问题,也容易debug出来,否则,就不知道在哪里找问题了。 博 12/14 10:27
- [problemqd] 代码修改完成。有2点需要确认:第1版书关于mul的使用方法存在关键印刷错误:乘数在al,而错误印刷成 12/13 22:56
[2008-12-24 17:12] 2008年12月24日
阅读全文 |
评论次数(1) |
浏览次数(626) |
所属类型(汇编作业)
[2008-12-23 15:45] 2008年12月23日
终于完成课程设计1。后来又添加了一个小子程序块:清零。终于明白为什么会在别人的代码里发现需要清零的功能了。
;课程设计1
;打印输出 power idea公司数据
;------------------------------------------
;结构:
; 数据转换 dtoc
; 数据显示 show_str
;----------------------------------------------
assume cs:codesg
data segment
db 20 dup (0)
db '1975','1976','1977','1978'...
;课程设计1
;打印输出 power idea公司数据
;------------------------------------------
;结构:
; 数据转换 dtoc
; 数据显示 show_str
;----------------------------------------------
assume cs:codesg
data segment
db 20 dup (0)
db '1975','1976','1977','1978'...
阅读全文 |
评论次数(3) |
浏览次数(680) |
所属类型(汇编作业)
[2008-12-18 15:19] 2008年12月18日
实验10.3代码
;将data段中的数据以十进制的形式显示
;data segment 提示:屏幕上显示十进制字符,“0”~“9”的ASCII码形式:30h~39h
; dw 123,12666,1,8,3,38
;data ends
;-----------------------------------
;子程序功能
; 将word型数据转变成表示十进制数据字符,以0结束
; 参数:(ax)=word型数据 ds:si指向字符串的首地址
; 返回:无
;------------------------------------------
; ...
;将data段中的数据以十进制的形式显示
;data segment 提示:屏幕上显示十进制字符,“0”~“9”的ASCII码形式:30h~39h
; dw 123,12666,1,8,3,38
;data ends
;-----------------------------------
;子程序功能
; 将word型数据转变成表示十进制数据字符,以0结束
; 参数:(ax)=word型数据 ds:si指向字符串的首地址
; 返回:无
;------------------------------------------
; ...
阅读全文 |
评论次数(2) |
浏览次数(768) |
所属类型(汇编作业)
[2008-12-10 20:44] 2008年12月10日
实验10.1
;在屏幕的8行3列,用绿色显示data段中的字符串
;子程序 show_str
; 在指定的位置,用指定的颜色,显示一个用0结束的字符串
; 参数:dh=行号(取值范围0~24)
; dl=列号(取值范围0~79)
; cl=颜色,ds:si指向字符串的首地址
;---------------------------
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start:
mov dh,8
mov...
;在屏幕的8行3列,用绿色显示data段中的字符串
;子程序 show_str
; 在指定的位置,用指定的颜色,显示一个用0结束的字符串
; 参数:dh=行号(取值范围0~24)
; dl=列号(取值范围0~79)
; cl=颜色,ds:si指向字符串的首地址
;---------------------------
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start:
mov dh,8
mov...
阅读全文 |
评论次数(6) |
浏览次数(674) |
所属类型(汇编作业)
[2008-12-06 19:10] 2008年12月6日
有很久很久了吧,我忙于做其它事,把汇编放了放。现在我又回来了。
实验7的程序实在有够挑战性的,折腾了许久,总算写出来了,不过把数据读取并存到相应的地方,基本算搞定了,不过除法部分运行有问题,可能是我把数据放得不对,导致除数出现了0吧。已经看过真正高手的代码了,对堆栈的使用出神入化,太出色了。我也没有心情再修改自己那些糟糕的代码了。先贴在这里做个记录,再静下心来修改。
assume cs:codesg,ds:data,es:table,ss:stack
data segment
db '1975','1976','1977','1978','1979','1980','1981',...
实验7的程序实在有够挑战性的,折腾了许久,总算写出来了,不过把数据读取并存到相应的地方,基本算搞定了,不过除法部分运行有问题,可能是我把数据放得不对,导致除数出现了0吧。已经看过真正高手的代码了,对堆栈的使用出神入化,太出色了。我也没有心情再修改自己那些糟糕的代码了。先贴在这里做个记录,再静下心来修改。
assume cs:codesg,ds:data,es:table,ss:stack
data segment
db '1975','1976','1977','1978','1979','1980','1981',...
阅读全文 |
评论次数(3) |
浏览次数(464) |
所属类型(汇编作业)
[2008-11-09 21:10] 2008年11月9日
第8章的自我检测题给我增加了难度,需要综合应用了。我会再
努力一下。...
努力一下。...
阅读全文 |
评论次数(1) |
浏览次数(599) |
所属类型(汇编作业)
[2008-10-26 20:45] 2008年10月26日
检测题5
1、在Intel8086环境下,对指令mov ax,[bx]描述错误的是_____。
1、指令中,源操作数的段地址默认为ds中的内容
2、指令中,源操作数的偏移地址为bx中的内容
3、指令执行后,(al)=((ds)*16+(bx)),
(ah)=((ds)*16+(bx)+1)
4、指令执行后,((ds)*16+(bx))=(al),
((ds)*16+(bx)+1)=(ah)
我选了4
2、mov cx,5
s: mov ax,[bx]
add bx,2
loop s
上面指令序列,当指令第一...
1、在Intel8086环境下,对指令mov ax,[bx]描述错误的是_____。
1、指令中,源操作数的段地址默认为ds中的内容
2、指令中,源操作数的偏移地址为bx中的内容
3、指令执行后,(al)=((ds)*16+(bx)),
(ah)=((ds)*16+(bx)+1)
4、指令执行后,((ds)*16+(bx))=(al),
((ds)*16+(bx)+1)=(ah)
我选了4
2、mov cx,5
s: mov ax,[bx]
add bx,2
loop s
上面指令序列,当指令第一...
阅读全文 |
评论次数(1) |
浏览次数(230) |
所属类型(汇编作业)
[2008-10-24 13:50] 2008年10月24日
今天完成第4章的检测。不过,还是有点奇怪。
列举如下:
1、关于伪指令相关描述错误的是_____。
1、 伪指令没有对应的机器码,只用来指导汇编过程的。
2、 伪指令由编译器处理,在程序中可有可无。
3、 编译器要通过执行伪指令才能对源程序进行相应的处理
操作,完成编译工作。
4、 伪指令是汇编语言源程序不可缺少的组成部分。
没有疑问,选2。
2、下列程序中,出现逻辑错误的是:____
1、 assume cs:code
code segment 评:根本性错误:code ends
...
列举如下:
1、关于伪指令相关描述错误的是_____。
1、 伪指令没有对应的机器码,只用来指导汇编过程的。
2、 伪指令由编译器处理,在程序中可有可无。
3、 编译器要通过执行伪指令才能对源程序进行相应的处理
操作,完成编译工作。
4、 伪指令是汇编语言源程序不可缺少的组成部分。
没有疑问,选2。
2、下列程序中,出现逻辑错误的是:____
1、 assume cs:code
code segment 评:根本性错误:code ends
...
阅读全文 |
评论次数(2) |
浏览次数(250) |
所属类型(汇编作业)
[2008-10-22 20:21] 2008年10月22日
今天尝试第1次做第3章的检测题。当然是没有通过。书读了好几
遍,但是使用起来总是会忽略一些,或者说基础不是很扎实。需要
再多思考。
列题如下:
1、若将以1000H为段地址的整个段空间当作栈使用,那么寄存器
SP的初始值最合理的设置是_____。
1、 0000H 2、 0001H 3、 FFFFH 4、 FFFEH
我选了4。应该是有问题的。因为我面对考题,觉得自己有疑
问。
2、能够只将al中的内容压入栈的指令序列是_____。
1、 push al 2、 pop ax 3、 mov ah,0 push ax
4、 mo...
遍,但是使用起来总是会忽略一些,或者说基础不是很扎实。需要
再多思考。
列题如下:
1、若将以1000H为段地址的整个段空间当作栈使用,那么寄存器
SP的初始值最合理的设置是_____。
1、 0000H 2、 0001H 3、 FFFFH 4、 FFFEH
我选了4。应该是有问题的。因为我面对考题,觉得自己有疑
问。
2、能够只将al中的内容压入栈的指令序列是_____。
1、 push al 2、 pop ax 3、 mov ah,0 push ax
4、 mo...
阅读全文 |
评论次数(1) |
浏览次数(254) |
所属类型(汇编作业)
[2008-10-10 12:41] 2008年10月10日
检测点2.2
给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围
为 00010到1000F(0001:0000~FFFF)。
有一数据存放在内存20000H单元,现给定的段地址为SA,若想用
偏移地址寻到此单元,则SA应满足的条件:最小为 1001,
最大为2000...
给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围
为 00010到1000F(0001:0000~FFFF)。
有一数据存放在内存20000H单元,现给定的段地址为SA,若想用
偏移地址寻到此单元,则SA应满足的条件:最小为 1001,
最大为2000...
阅读全文 |
评论次数(1) |
浏览次数(224) |
所属类型(汇编作业)