汇编网首页登录博客注册
yesinol的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
文章收藏
友情链接

[2009-08-08 18:46] 研究实验5 函数如何接收不定数量的参数

(1)将2赋给AX,入栈;将'a'赋给AL,入栈。main通过栈传递参数。
  MOV AX,0002
  PUSH AX
  MOV AL,61
  PUSH AX

showchar通过栈接收参数,用bp指示参数的位置。
  MOV BP,SP
  MOV AL,[BP+04]
  MOV BX,B800
  MOV ES,BX
  MOV BX,0690
  ES:
  MOV [BX],AL
  MOV AL,[BP+06]
  MOV BX,B800
  MOV ES,BX
  MOV BX,0691
  ES:
  MOV [BX],AL
 ...
阅读全文 | 评论次数(1) | 浏览次数(1130) | 所属类型(汇编作业)

[2009-07-29 18:18] 研究实验4  不用main函数编程

(1)编译没问题,因为源代码本身没有错误。连接环节出现了问题,显示的错误信息是:Undefined symbol '_main' in module C0S,该信息可能与c0s.obj有关。

(2)f.exe的程序代码总共有303字节。在Debug中不能正确返回,在遇到错误代码后会强制退出。该函数的偏移地址是0。

(3)m.exe的程序代码总共有4280字节。可以正确返回。m.exe和f.exe这二者的区别是,前者在程序前面有很多代码,main的偏移地址是1FAH。

(4)调用main函数的指令为CALL 01FA,其偏移地址为11AH。
返回指令为MOV AH,4C MO...
阅读全文 | 评论次数(2) | 浏览次数(1079) | 所属类型(汇编作业)

[2009-07-28 18:37] 研究实验3 使用内存空间

(1)
5D1A:01FA 55            PUSH    BP
5D1A:01FB 8BEC          MOV     BP,SP

5D1A:01FD C606002061    MOV     BYTE PTR [2000],61
*(char *)0x2000='a';若只使用偏移地址,则放在数据段,占一字节

5D1A:0202 C70600200F00  MOV     WORD PTR [2000],000F
*(int *)0x2000=0xf;占一个字空间

5D1A:0208 BB0020        MOV     BX,2000...
阅读全文 | 评论次数(2) | 浏览次数(1123) | 所属类型(汇编作业)

[2009-07-28 17:34] 研究实验2 使用寄存器

(2)main函数的代码在代码段中。用debug的u命令反汇编ur1.exe,可以找到相关代码。
(3)main函数在代码段中的偏移地址是1FAH。main函数从本质上也是个子程序,需要被调用,main也就是这个子程序的入口地址,相当于子程序的标号。
(4)通过C语言源代码和汇编代码的对比可以看出二者差别不大,只是表达上有所不同。
5D0E:01FA 55            PUSH    BP
5D0E:01FB 8BEC          MOV     BP,SP
5D0E:01FD B80100        MOV     AX,0001
5D0E:0200 BB01...
阅读全文 | 评论次数(1) | 浏览次数(1035) | 所属类型(汇编作业)

[2009-07-28 17:03] 研究实验1 搭建一个精简的C语言开发环境

只用tc.exe可以成功编译,但是无法成功连接。软件提示需要C0S.OBJ,EMU.LIB,MATHS.LIB,GRAPHICS.LIB,CS.LIB这5个文件。...
阅读全文 | 评论次数(1) | 浏览次数(1123) | 所属类型(汇编作业)

[2009-07-28 16:59]

空着课程设计2的地方,完成这个设计应该需要一段时间。...
阅读全文 | 评论次数(2) | 浏览次数(1110) | 所属类型(默认类型)

[2009-07-27 16:30] 实验17 编写保护多个功能子程序的中断例程

assume cs:code
code segment
start:
    mov ax,cs
    mov ds,ax
    mov si,offset floppy

    mov ax,0
    mov es,ax
    mov di,200h

    mov cx,offset floppyend - offset floppy
    cld
    rep movsb
    
    mov ax,0
    mov es,ax
    mov word ptr es:[7ch*4],200h
    mov word ptr e...
阅读全文 | 评论次数(1) | 浏览次数(1056) | 所属类型(汇编作业)

[2009-07-27 16:14] 检测点17.1

“在int 16h中断例程中,一定有设置IF=1的指令。”这种说法对吗?
这种说法是对的。IF=1,即响应可屏蔽中断。若不置1,将无法获取键盘输入。...
阅读全文 | 评论次数(1) | 浏览次数(780) | 所属类型(汇编作业)

[2009-07-26 16:48] 实验16 编写包含多个功能子程序的中断例程

安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序:
(1)清屏
(2)设置前景色
(3)设置背景色
(4)向上滚动一行
assume cs:code
code segment
start:
    mov ax,cs
    mov ds,ax
    mov si,offset setscreen

    mov ax,0
    mov es,ax
    mov di,200h

    mov cx,offset stscrend - offset setscreen
    cld
    rep movsb

    mov...
阅读全文 | 评论次数(1) | 浏览次数(816) | 所属类型(汇编作业)

[2009-07-26 11:56] 检测点16.2

下面的程序将data段中的a处的8个数据累加,结果存储到b处的字中。补全程序。
assume cs:code,es:data
data segment
    a db 1,2,3,4,5,6,7,8
    b dw 0
data ends

code segment
start:
    mov ax,data
    mov es,ax

    mov si,0
    mov cx,8
  s:
    mov al,a[si]
    mov ah,0
    add b,ax
    inc si
    loop s

    mov ...
阅读全文 | 评论次数(1) | 浏览次数(757) | 所属类型(汇编作业)
『 查看更多文章 』