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

我的博客

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

[2011-07-28 11:01] 综合研究

研究问题
        (1)用C语言编程可以不用变量吗?  可以
        (2)用C语言编程可以不用main函数吗?可以,但要改写c0s.obj文件的代码
        (3)我们能写一个printf函数吗? 能
研究实验一 搭建一个精简的C语言开发环境
所需文件        
        TC.EXE
还缺少
        COS.OBJ
        EMU.LIB
        MATHS.LIB
        GRAPHICS.LIB
        CS.LIB
研究实验二 使用寄存器
(2)main函数的代码在什么段中?
应该是代码段,通过cs和ds寄存器查看
用Debug怎么找到main函数的代码?
靠下一问的提示,用printf函数输出main函数的偏移...
阅读全文 | 评论次数(0) | 浏览次数(635) | 所属类型(汇编作业)

[2011-07-18 23:21] 课程设计二代码

assume cs:code
code segment
        ;int13h入口参数:
                ;(ah)=int 13h的功能号(2表示读扇区3表示写扇区)
                ;(al)=读取/写入扇区数
                ;(ch)=磁道号
                ;(cl)=扇区号
                ;(dh)=磁头号(对于软盘即面号,因为一个面用一个磁头来读写)
                ;(dl)=驱动器号        软驱从0开始,0:软驱A,1:软驱B;
                ;        硬盘从80h开始,80h:硬盘C,81h:硬盘D
                ;es:bx指向接收从扇区读入数据的内存区
start:        ;mov ax,offset start3end-offset start3
                ;先...
阅读全文 | 评论次数(1) | 浏览次数(741) | 所属类型(汇编作业)

[2011-06-27 10:51] 实验16 编写包含多个功能子程序的中段例程

assume cs:code
code segment
int7ch: 
        jmp short set
table dw sub1,sub2,sub3,sub4
set:        push bx
        cmp ah,3        ;判断功能号是否大于3
        ja sret
        mov bl,ah
        mov bh,0
        add bx,bx        ;根据ah中的功能号计算子程序在table表中的偏移
        add bx,200H        ;table表的绝对地址=200h+table的相对地址
        add table[bx],200h        ;子程序的绝对地址=相对地址+200h
        call word ptr table[...
阅读全文 | 评论次数(0) | 浏览次数(558) | 所属类型(汇编作业)

[2011-06-27 10:48] 监测点 16.1~16.2

监测点 16.1
下面的程序将code段中a处的8个数据累加,结果存储到b处的双字节中,补全程序。
assume cs:code
code segment
        a dw 1,2,3,4,5,6,7,8
        b dd 0
start : mov si,0
        mov cx,8
s:        mov ax,a[si]
        add b,ax
        adc b[2],0
        add si,2
        loop s
        
        mov ax,4c00h
        int 21h
code ends 
end start

检测点 16.2
assume cs:code,es:data
data segm...
阅读全文 | 评论次数(0) | 浏览次数(552) | 所属类型(汇编作业)

[2011-06-23 20:55] 实验 15

安装一个新的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

        mov ax,0
        mov es,ax

        mov si,offset int9        ;设置ds:si指向源地址
        mov di,204h                ;设置es:di指向目的地址 ...
阅读全文 | 评论次数(0) | 浏览次数(568) | 所属类型(汇编作业)

[2011-05-04 13:06] 监测点 15.1

(1)
可以精简为:
Pushf
Call dword ptr ds:[0]
(2)
        .
        .
        .
cli        ;设置if=0
        ;在中断向量表中设置新的int 9中断例程的入口地址
        mov word ptr es:[9*4],offset int9
        mov es:[9*4+2],cs
        sti        ;设置if=1
        .        
        .
        .
        cli        ;设置if=0
        ;将中断向量表中int 9中断例程的入口恢复为原来的地址
        push ds:[0]
        pop es:[9*4]
        push ds:[2]
        pop es:[9*4+2]
        sti        ;设置if...
阅读全文 | 评论次数(0) | 浏览次数(523) | 所属类型(汇编作业)

[2011-04-23 15:38] 实验14 访问CMOS RAM

;编程,以“年/月/日 时:分:秒“的格式,显示当前的日期、时间。
assume cs:code,ds:data
data segment
        db 0,0,'/',0,0,'/',0,0," ",0,0,":",0,0,":",0,0,"$"
        db 9,8,7,4,2,0        ;存放单元号
data ends
code segment

start:        mov ax,data
        mov ds,ax
        mov bx,0        ;ds:bx指向数据段
        mov cx,6
        mov si,18        ;从18号单元开始存放单元号
s:        mov al,ds:[si]        ;读出单元号
        cal...
阅读全文 | 评论次数(0) | 浏览次数(529) | 所属类型(汇编作业)

[2011-04-23 15:37] 检测点14.1~14.2

检测点14.1
(1)        编程,读取CMOS RAM的2号单元的内容。
mov al,2
out 70H,al
in al,71H
(2)编程,向CMOS RAM的2号单元写入0.
mov al,2
out 70H,al
out al,71H
监测点 14.2
编程,用加法和移位指令计算(ax)=(ax)*10
提示:(ax)*10=(ax)*2+(ax)*8
        mov ax,0fffH
        shl ax,1
        mov bx,0fffH
        mov cl,3
        shl bx,cl
        add ax,bx...
阅读全文 | 评论次数(0) | 浏览次数(534) | 所属类型(汇编作业)

[2011-04-15 21:25] 实验 13 编写、应用中断例程

(1)//7ch中断例程安装
assume cs:code
code segment
start:  mov ax,cs
        mov ds,ax
        mov si,offset do7cH
        mov ax,0
        mov es,ax
        mov di,200H
        mov cx,offset do7cHend-offset do7cH
        cld
        rep movsb

        mov ax,0
        mov es,ax
        mov word ptr es:[7cH*4],200H
        mov word ptr es:[7cH*4+2],0
        mov ax,4c00H
        int 21...
阅读全文 | 评论次数(0) | 浏览次数(520) | 所属类型(汇编作业)

[2011-04-15 21:25] 监测点 13.2

判断下面说法的正误:
(1)        我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。
答:错,因为向C0000~FFFFF中写入数据的操作是无效的,因为这等于改写只读存储器中的内容(only read)
(2)int 19h 中断例程,可以由DOS提供。
不可以,因为int 19h进行操作系统的引导,讲计算机交给操作系统控制。...
阅读全文 | 评论次数(0) | 浏览次数(552) | 所属类型(汇编作业)
『 查看更多文章 』