浙江大学 汇编 第一次作业.

更新时间:2023-05-30 07:10:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1次汇编作业

按以下格式输出[00h,0FFh]范围内的

全部ASCII字符及16进制ASCII码:

Copyright

As one member of Information Science and Electronic Engineering Institute of Zhejiang University,I sincerely hope this will enable you to acquire more time to do whatever you like instead of struggling on useless homework.All the content you can use as you like.I wish you will have a meaningful journey on your college life.

——W z h 警告:如果用于课堂作业,请尽量自己完成,以防止代码查重!

;===============================

;coded by Wzh

;Zhejiang University浙江大学汇编

;===============================

assume cs:codesg

codesg segment

;设置寄存器初值

mov dx,0000H

mov dl,00H;从ASCII码为00H的字符开始显示

mov cx,0019H;设置外循环的次数19,即要显示的行数

mov ax,0000H

;--初始化显存--

mov ax,0b800h

;获得显示区段地址,B800

mov es,ax

mov si,0160;1660正中间;0160,开头;

r:

push dx;保存外循环中dx值

;mov ah,02H;设置显示方式,

;Ah:判断21号中断的具体操作类型

;Al:输出放入Al

;Dl:输出字符;

push cx;保存外循环次数的计数

mov cx,000AH;设置内循环次数10,即一行最多11个字符

c:

;输出ASCLL字码

;-----------Screen-----------

;将字符移入寄存器

mov es:[si],dl

;将字符移入显示区

mov al,0100b;red!

;将颜色信息移入寄存器

mov es:[si].1,al

;将颜色信息移入显示区

add si,2

;-----------Screen-----------

;int21H;显示ASCII值为[dx]的字符

push dx;保存dx的值

mov ax,dx

call DISP_AX;此处添加外代码~显示数字>_<

;--------------输出空格X4-----------------

push cx

mov cx,4

circul:

mov al,00H

mov es:[si],al

;将字符移入显示区

mov al,02h;green?

;将颜色信息移入寄存器

mov es:[si].1,al

;将颜色信息移入显示区

add si,2

loop circul

pop cx

;-----------------------------------------

pop dx;恢复dx的值,并加19,产生下一个ASCII字符add dx,0019H

cmp dx,0100H

jl h1

cmp dx,0112H

jle here

h1:

cmp dx,00FFH;溢出否?

ja hi;如果溢出则跳出循环

loop c

;已经进行完了一次内循环

here:

;--------------输出空格X4-----------------

push cx

mov cx,7

circul1:

mov al,00H

mov es:[si],al

;将字符移入显示区

mov al,02h;green?

;将颜色信息移入寄存器

mov es:[si].1,al

;将颜色信息移入显示区

add si,2

loop circul1

pop cx

;-----------------------------------------hi:

pop cx;恢复外循环次数的计数

;---------下一行-----

push cx

mov cx,3

circul2:

mov al,00H

mov es:[si],al

;将字符移入显示区

mov al,02h;green?

;将颜色信息移入寄存器

mov es:[si].1,al

;将颜色信息移入显示区

add si,2

loop circul2

pop cx

;----------------------------

;mov dx,000dH;输出回车换行

;int21H

;mov dx,000aH;这行输入干啥...

;int21H

pop dx;恢复dx的值

inc dx;外循环+1

loop r;貌似是循环自动减去1:cx.

;外循环结束,程序的功能完成

mov ax,4c00H;也可以写作mov ah,4CH

int21H

;===================================

DISP_AX:

MOV BX,16;16进制,要除16

MOV CX,2;求4位16进制数. ABC:

CWD;将AX扩展到DX

DIV BX

PUSH DX;保存余数到堆栈.

LOOP ABC

MOV CX,2;显示4位.

ASD:

POP DX

CMP DL,10

JB A48

ADD DL,7

A48:

ADD DL,48

;-----------Screen-----------

;将字符移入寄存器

mov es:[si],dl

;将字符移入显示区

mov al,02h;green?

;将颜色信息移入寄存器

mov es:[si].1,al

;将颜色信息移入显示区

add si,2

;-----------Screen-----------

;MOV AH,2

;INT21H;输出.

LOOP ASD

RET

codesg ends

end

本文来源:https://www.bwwdw.com/article/rw74.html

Top