汇编代码(1)
来源:互联网 发布:天猫推荐算法大赛代码 编辑:程序博客网 时间:2024/06/10 15:22
;将数据段内的字母改成大写.MODEL SMALL.STACK 100H.DATADB'ibm 'DB'win 'DB'len 'DB'hua '.CODEMAINPROCFARMOV AX,@DATAMOV DS,AXMOVSI,0000HMOV CX,0003HMOV BX,0000HMOV DX,0004HJ:MOV AL,[BX+SI]AND AL,11011111BMOV [BX+SI],ALINC SILOOP JADD BX,0008HMOV CX,0003HMOV SI,0000HDEC DXJNZ JMOV AH,4CHINT 21HMAINENDPENDMAIN
DOSSEG.MODELSMALL; 设定8086汇编程序使用Small model.8086; 设定采用8086汇编指令集; 8255芯片端口地址 (Port number)分配:PortAEQU90H; Port A's port number in I/O spacePortBEQU 92H; Port B's port number in I/O spacePortCEQU 94H; Port C's port number in I/O spaceCtrlPTEQU 96H; 8255 Control Register's port number in I/O spacePatch_ProtuesEQUIN AL, 0;Simulation Patch for Proteus, please ignore this line.data; 定义数据段;DelayShortdw200SEGTAB DB 3FH; 7-Segment Tube, 共阴极类型的7段数码管示意图DB 06H;DB 5BH; a a aDB 4FH; f bDB 66H; f bDB 6DH; f bDB 7DH; g g g DB 07H; e cDB 7FH; e cDB 6FH; e c DB 77H; d d d h h hDB 7CH; ----------------------------------DB 39H; b7 b6 b5 b4 b3 b2 b1 b0DB 5EH; DP g f e d c b aDB 79H;DB 71H;.code; Code segment definition.startup; 定义汇编程序执行入口点;------------------------------------------------------------------------Patch_Protues; Simulation Patch for Proteus,; Please ignore the above code line.;------------------------------------------------------------------------MOV AH,10001001B;设置控制状态为C输入,AB输出(控制字不改变)SUB AL,ALOUT CtrlPT,AXL:;开关处于ON为0,处于OFF为1IN AX,PortC;读入开关状态NOT AX;转换为合适的状态MOV AL,AH;将需要的数据从AH移动到AL;沿用上一题代码的形式MOV BL,ALAND BL,11110000B;获取高四位数据SUB BH,BHMOV CL,4;8086指令中只支持ROR BL,1或者ROR BL,CL格式ROR BX,CLMOV SI,OFFSET SEGTABSUB BH,BHADD SI,BXMOV AH,[SI]MOV DH,AH;DH中存储着输入数据高四位对应的显示SUB BL,BL;BL清零MOV BL,ALAND BL,00001111BMOV DI,OFFSET SEGTABSUB BH,BHADD DI,BXMOV DL,[DI];DL 中存储着输入数据低4位对应的显示AND AL,11110000BMOV BH,AL;BH中存储着输入8位数据的高四位状态;第四位和第二位显示MOV AH,BHADD AH,00001010BOUT PortA,AXMOV AH,DHOUT PortB,AXCALL DELAY;第三位和第一位显示MOV AH,BHADD AH,00000101BOUT PortA,AXMOV AH,DLOUT PortB,AXCALL DELAYJMP LRETDELAY PROC PUSH CX MOV CX,DelayShortD1: LOOP D1 POP CX RETDELAY ENDP.stack 100h; 定义256字节容量的堆栈END;指示汇编程序结束编译
;将welcome to masm!复制到相邻的内存空间中assume: ds:data,cs:codedata segmentdb 'welcome to masm!'db ' 'data endscode segmentstart:mov ax,datamov ds,axmov si,0mov di,16mov cx,16j:mov al,[si]mov [di],alinc siinc diloop jmov ah,4chint 21hcode endsend start
0 0
- 汇编代码(1)
- 汇编新手代码(1)大写转小写
- 程序编码(机器级代码+汇编代码+C代码+反汇编)
- C++内嵌汇编代码(1)
- Linux内核分析【1】--分析汇编代码
- 滚动文字代码(全)【汇编】
- 基础的反汇编代码(一)
- main函数的汇编代码(转载)
- 汇编学习(1)
- 8086汇编(1)
- 汇编学习(1)
- WIN32汇编-(1)
- 汇编学习(1)
- 汇编学习(1)
- MTK lk源码解析1( lk 阶段汇编代码crt0.S解析)
- 汇编代码优化
- Win32汇编代码模板
- 对话框代码模块(汇编)
- 打开文件或文件夹
- 表达式求值
- 读取位图文件
- 如果愛没有痛
- poj2499 由二叉树的根向左向右走几步到目标点
- 汇编代码(1)
- hdu 2041
- 【jquery】jquery.artDialog.js分析
- unity3D游戏开发二之unity编辑器一
- iOS 语言国际化
- NSDate 和 NSDateformate 那些事儿
- SQL利用CMD以及IIS命令APPCMD 实现一些IIS操作
- MyBatis Generator产生的Example类
- mongoDB的索引