assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin: mov ax,datasg
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 21h
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变成大写字母
;参数:ds:si指...
- [yigeling] 注意子程序保存寄存器现场,这样子程序就能有更好的通用性。 例如cx,如果主程序用到了cx,调用该子 04/26 18:04
- [wdm] 返回:(dx)=结果的高16位,(ax)=结果的低16位 -------- 题目要求要符合哟。 04/08 15:48
- [wdm] 博主就没有运行一下程序么?显存没定位正确,怎么显示数据啊。 es定位到什么地方了??怀疑中... 04/08 15:45
- [starrynight] mov ax,0b800h 差之毫厘,谬以千里。建议博主多思考,实验验证!!! 04/08 11:44
- [starrynight] 不对 看 divdw 最后一句指令,是否合理?!!! 04/08 11:42
- [starrynight] Divide overflow 报错!!! 程序的更新建议: assume cs 04/08 11:31
- [starrynight] Divide overflow 报错!!! 程序的更新建议: assume cs:co 04/08 11:30
- [martian] 楼主检测点的答案都没有问题。 对于栈空间定义的大小,楼主可以自己实验一下,通过你的电脑可以得出 03/29 18:59
- [mess] 马上就可以进行第四章的”第一个程序了“,博主加油啊~~~ 03/28 09:13
- [游客] 博主真省事。呵呵 这个每个人的机器上有可能不同,只要自己仔细核对就OK了。 03/27 16:25
[2008-04-26 17:31] 11章实验
阅读全文 |
评论次数(1) |
浏览次数(646) |
所属类型(汇编作业)
[2008-04-07 16:23] 实验10.1--在指定位置显示字符串
;名称: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 dl,3
mov cl,2
mov ax,data
...
;功能:在指定的位置,用指定的颜色,显示一个用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 dl,3
mov cl,2
mov ax,data
...
阅读全文 |
评论次数(2) |
浏览次数(586) |
所属类型(汇编作业)
[2008-04-07 16:23] 实验10.2-解决除法溢出
;名称:divdw
;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型
;参数:(ax)=dword型数据的低16位
; (dx)=dword型数据的高16位
; (cx)=除数
;返回:(dx)=结果的高16位,(ax)=结果的低16位
; (cx)=余数
assume cs:code,ss:stack
stack segment
dw 8 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,a...
;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型
;参数:(ax)=dword型数据的低16位
; (dx)=dword型数据的高16位
; (cx)=除数
;返回:(dx)=结果的高16位,(ax)=结果的低16位
; (cx)=余数
assume cs:code,ss:stack
stack segment
dw 8 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,a...
阅读全文 |
评论次数(2) |
浏览次数(616) |
所属类型(汇编作业)
[2008-04-07 16:07] 我做的实验10.3-数值显示
;名称:dtoc
;功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符
;参数:(ax)=word型数据
; ds:si指向字符串的首地址
;返回:无
assume cs:code
data segment
db 10 dup (0)
data ends
code segment
start: mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
...
;功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符
;参数:(ax)=word型数据
; ds:si指向字符串的首地址
;返回:无
assume cs:code
data segment
db 10 dup (0)
data ends
code segment
start: mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
...
阅读全文 |
评论次数(2) |
浏览次数(646) |
所属类型(汇编作业)
[2008-03-29 16:21] 检测点6.1
(1)assume cs:code
code segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
mov cs:[bx],ax 补空
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
en...
code segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
mov cs:[bx],ax 补空
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
en...
阅读全文 |
评论次数(1) |
浏览次数(581) |
所属类型(汇编作业)
[2008-03-27 15:40] 过了第三章测试题后感想
昨天刚过了第2 章的测试题,第二章题目困了我快2天了,书本内容看了34遍,又上论坛看网友们的提问,仔细把细节跟遗漏补了上来。感觉理解的还算可以。今天学习第三章内容,4个小时时间就完了书上的,独立做了测试题跟实验题目,然后抱着试试看的想法 做网站上的检测题,不知道是题目简单了还是别的原因,一次就过了。
感觉前2章的学习方法对我的帮助很大,基础理论理解透彻了,对以后的学习帮助很大,不知道是不是要往下一章继续,感觉进度有点快了,现在还是去论坛看看网友们的提问,看有没有什么遗漏的东西吧...
感觉前2章的学习方法对我的帮助很大,基础理论理解透彻了,对以后的学习帮助很大,不知道是不是要往下一章继续,感觉进度有点快了,现在还是去论坛看看网友们的提问,看有没有什么遗漏的东西吧...
阅读全文 |
评论次数(2) |
浏览次数(617) |
所属类型(默认类型)
[2008-03-27 15:18] 第三章实验任务
5bea
5cca
30f0
6029
00fe 2200:00fe 5cca
00fc 2200:00fc 6029
00fe as=6029
010 5cca
00fe 2200:00fe 30f0
00fc 2202:00fc 2f39...
5cca
30f0
6029
00fe 2200:00fe 5cca
00fc 2200:00fc 6029
00fe as=6029
010 5cca
00fe 2200:00fe 30f0
00fc 2202:00fc 2f39...
阅读全文 |
评论次数(1) |
浏览次数(637) |
所属类型(汇编作业)
[2008-03-27 14:46] 检测点3.2
mov ax,2000H
mov ss,ax
mov sp,0010H
解:10000H逆序拷贝到2000EH中,PUST为入栈,ss为2000H,入栈后栈顶位置为000EH,考虑到在入栈前,栈顶位置为sp-2,所以SP应为0010
mov ax,1000H
mov ss,ax
mov sp,0000H
10000H逆序拷贝到2000EH中,pop为出栈,SS为1000H,出栈后栈顶位置为0002H,考虑到在出栈后,栈顶位置为sp+2,所以SP应为0000...
mov ss,ax
mov sp,0010H
解:10000H逆序拷贝到2000EH中,PUST为入栈,ss为2000H,入栈后栈顶位置为000EH,考虑到在入栈前,栈顶位置为sp-2,所以SP应为0010
mov ax,1000H
mov ss,ax
mov sp,0000H
10000H逆序拷贝到2000EH中,pop为出栈,SS为1000H,出栈后栈顶位置为0002H,考虑到在出栈后,栈顶位置为sp+2,所以SP应为0000...
阅读全文 |
评论次数(1) |
浏览次数(520) |
所属类型(汇编作业)
[2008-03-27 13:05] 检测点3.1
(1)ax=2662
bx=e626
ax=e626
ax=2662
bx=d6e6
ax=fd48
ax=2c14
ax=0000
ax=00e6
bx=0000
bx=0026
ax=000c
(2)1. mov ax,6622H
jmp 0ff0:0100
mov ax,2000H
mov ds,ax
mov ax,[0008]
mov ax,[0002]...
bx=e626
ax=e626
ax=2662
bx=d6e6
ax=fd48
ax=2c14
ax=0000
ax=00e6
bx=0000
bx=0026
ax=000c
(2)1. mov ax,6622H
jmp 0ff0:0100
mov ax,2000H
mov ds,ax
mov ax,[0008]
mov ax,[0002]...
阅读全文 |
评论次数(1) |
浏览次数(534) |
所属类型(汇编作业)
[2008-03-26 18:45] CPU从1000:0处开始执行指令当执行完1000:10处的指令后CPU修改了几次IP
1000:0 mov ax,8
1000:3 jmp ax
1000:5 mov ax,0
1000:8 mov bx,ax
1000:10 jmp bx
CPU从1000:0处开始执行指令当执行完1000:10处的指令后CPU修改了几次IP????????????????
我做的答案是6次。
1 执行完MOV ax,8后 改为 读入MOV ax,8后
2 读入jmp ax后
3 执行完jmp ax后 (AX=8,直接跳转1000:8。。不执行mov ax,0)
4 执行完mov bx,ax后 改为 读入MOV ax,8后
5 读入...
1000:3 jmp ax
1000:5 mov ax,0
1000:8 mov bx,ax
1000:10 jmp bx
CPU从1000:0处开始执行指令当执行完1000:10处的指令后CPU修改了几次IP????????????????
我做的答案是6次。
1 执行完MOV ax,8后 改为 读入MOV ax,8后
2 读入jmp ax后
3 执行完jmp ax后 (AX=8,直接跳转1000:8。。不执行mov ax,0)
4 执行完mov bx,ax后 改为 读入MOV ax,8后
5 读入...
阅读全文 |
评论次数(3) |
浏览次数(533) |
所属类型(默认类型)
『 查看更多文章 』